Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Ce document est la propriété de SYMETRIE. Il ne peut pas être copié ou reproduit, sous quelque forme que ce soit sans autorisation.
Interface de programmation (API)
Rack de contrôle hexapode
Document :
Version :
Nombre de pages :
Date :
Version logiciel :
13067_001_MAN_C_Software API.doc
C
65
25/01/2016
4.1
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 2 / 65
INFORMATION ET PROPRIÉTÉ
SYMETRIE
10, Allée Charles Babbage
30035 Nîmes - Cedex 1
FRANCE
Téléphone : +33 (0)4 66 29 43 88
Fax : +33 (0)4 66 29 54 47
Support technique : [email protected]
Ce document est la propriété de SYMETRIE. Il ne peut pas être copié ou reproduit, sous quelque forme que ce soit, sans autorisation.
TABLE DES MISE A JOUR
Révision Date Pages Nature de la modification
A 10/01/2014 Toutes Création du document
B 05/03/2014 Toutes Ajout explications
C 25/01/2016 Toutes Ajout de commandes suite à la livraison de la série d’hexapodes 14067
TABLE DES APPROBATIONS
C 25/01/2016
P. NOIRE
Ingénieur d’étude
R. GUASH MARY
Ingénieur d’étude
T. ROUX
Directeur technique
Révision Date Rédaction Vérification Approbation
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 3 / 65
SOMMAIRE
Information et propriété ..................................................................................................................... 2
Table des mise à jour .......................................................................................................................... 2
Table des approbations ...................................................................................................................... 2
Sommaire ........................................................................................................................................... 3
1 Introduction ................................................................................................................................ 5
2 Généralités sur l’hexapode .......................................................................................................... 6
2.1 Définition des repères ....................................................................................................................... 6
2.1.1 Repère Machine ....................................................................................................................................................... 6
2.1.2 Repère Nacelle ......................................................................................................................................................... 7
2.1.3 Repère Utilisateur..................................................................................................................................................... 7
2.1.4 Repère Objet ............................................................................................................................................................ 7
2.2 Affichage de la position ..................................................................................................................... 8
2.3 Commande de pilotage ..................................................................................................................... 9
2.3.1 Notion de pilotage absolu ........................................................................................................................................ 9
2.3.2 Notion de pilotage relatif ......................................................................................................................................... 9
2.4 Vecteurs de rotation ........................................................................................................................ 12
3 Mise en route ............................................................................................................................ 13
4 Commandes .............................................................................................................................. 14
4.1 Protocole ........................................................................................................................................ 14
4.2 Type de commande ......................................................................................................................... 15
4.3 Astuces ........................................................................................................................................... 16
4.4 Commandes de type « Ordre » ......................................................................................................... 18
4.4.1 STOP ....................................................................................................................................................................... 18
4.4.2 HOMING ................................................................................................................................................................. 18
4.4.3 CONTROLON ........................................................................................................................................................... 19
4.4.4 CONTROLOFF .......................................................................................................................................................... 20
4.4.5 MOVE ...................................................................................................................................................................... 21
4.4.6 SPECIFICPOS ........................................................................................................................................................... 23
4.4.7 CLEARERROR ........................................................................................................................................................... 25
4.4.8 JOG ......................................................................................................................................................................... 26
4.4.9 RESET SOFT ............................................................................................................................................................. 27
4.4.10 CFG#CS ............................................................................................................................................................... 28
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 4 / 65
4.4.11 CFG#DEFAULT .................................................................................................................................................... 29
4.4.12 CFG#LIMITS ........................................................................................................................................................ 30
4.4.13 CFG#LIMITS_ENABLED ....................................................................................................................................... 32
4.4.14 CFG#SAVE ........................................................................................................................................................... 33
4.4.15 CFG#SPEED ......................................................................................................................................................... 34
4.4.16 CFG#STALLCURRENT .......................................................................................................................................... 35
4.4.17 CFG#BACKLASH .................................................................................................................................................. 36
4.4.18 CFG#HEXAPARAM .............................................................................................................................................. 38
4.4.19 CFG#ACTUATORPARAM ..................................................................................................................................... 40
4.5 Commandes de type « Demande d’information » ............................................................................. 41
4.5.1 VERSION? ................................................................................................................................................................ 41
4.5.2 POSUSER? ............................................................................................................................................................... 42
4.5.3 POSMACH? ............................................................................................................................................................. 42
4.5.4 POSVALID? .............................................................................................................................................................. 43
4.5.5 STATE#AXIS? ........................................................................................................................................................... 45
4.5.6 STATE#HEXA? ......................................................................................................................................................... 46
4.5.7 STATE#DEBUG? ...................................................................................................................................................... 48
4.5.8 STATE#ERROR? ....................................................................................................................................................... 50
4.5.9 STATE#IO? .............................................................................................................................................................. 51
4.5.10 STATE#TEMPERATURE? ..................................................................................................................................... 52
4.5.11 CFG#CS? ............................................................................................................................................................. 53
4.5.12 CFG#LIMITS? ...................................................................................................................................................... 54
4.5.13 CFG#LIMITS_ENABLED? ..................................................................................................................................... 55
4.5.14 CFG#SAVED? ...................................................................................................................................................... 56
4.5.15 CFG#SPEED? ....................................................................................................................................................... 57
4.5.16 CFG#STALLCURRENT? ........................................................................................................................................ 58
4.5.17 CFG#BACKLASH? ................................................................................................................................................ 59
4.5.18 CFG#HEXAPARAM? ............................................................................................................................................ 60
4.5.19 CFG#ACTUATORPARAM? ................................................................................................................................... 61
ANNEXE 1 Configuration adresse IP .............................................................................................. 63
ANNEXE 2 Turbo PMAC Ethernet protocol ..................................................................................... 64
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 5 / 65
1 INTRODUCTION
Ce document décrit le principe de la communication entre le système de contrôle et l’hexapode. Le paragraphe 2 décrit les notions de pilotage nécessaires à la compréhension du fonctionnement de l’hexapode. Le paragraphe 3 explique comment démarrer et communiquer avec le rack de contrôle. Le paragraphe 4 détaille l’ensemble des commandes de l’interface de programmation.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 6 / 65
2 GENERALITES SUR L’HEXAPODE
Les éléments décrits dans ce paragraphe constituent des généralités. Pour certains hexapodes spécifiques, les définitions données ci-dessous ne correspondent pas exactement, mais la philosophie reste identique.
2.1 DEFINITION DES REPERES
L’hexapode comporte quatre repères :
repère Machine
repère Nacelle
repère Utilisateur
repère Objet
2.1.1 Repère Machine
Ce repère est défini par rapport à la base de l’hexapode ; il est fixe par rapport à celle-ci. Ce repère est mesurable sur la nacelle lorsque celui-ci est en position « zéro ». Il est construit de la manière suivante :
origine au centre et à la surface supérieure de la nacelle,
axe Z : normale à la nacelle,
axe Y : axe passant par des éléments géométriques constitutifs de la nacelle.
La figure ci-dessous illustre la construction de ce repère sur la machine.
RMach XMach
ZMach
Nacelle
Base
RMach XMach
ZMach
Base
RNacelle
XNacelle
ZNacelle
= ZNacelle
= RNacelle = XNacelle
Figure 1 : Illustration de la définition du repère Machine
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 7 / 65
2.1.2 Repère Nacelle
Le repère Nacelle est confondu avec le repère Machine quand l’hexapode est en position « zéro ». Ce repère est attaché à la nacelle et il est mesurable à partir de ces éléments géométriques (Cf. définition du repère Machine).
La position du repère nacelle par rapport au repère Machine permet de caractériser les mouvements effectués avec l’hexapode (se référer à la Figure 1).
2.1.3 Repère Utilisateur
Le repère Utilisateur correspond au repère d’expression de la position de l’objet positionné par l’hexapode. Le repère Utilisateur est défini par rapport au repère Machine car il est fixe.
La figure ci-contre illustre la définition du repère Utilisateur.
Le repère Utilisateur est ainsi défini dans le logiciel de commande.
RMach
XMach
ZMach
ZUtil
RUtil XUtil
-205
XYZ
T R0-150
Figure 2 : Définition du repère Utilisateur
2.1.4 Repère Objet
Le repère Objet correspond à la définition du repère piloté. Il est défini par rapport au repère Nacelle. Il permet de définir le centre de rotation (composantes du vecteur de translation) et l’orientation du repère Objet (composantes du vecteur de rotation).
La figure ci-contre illustre la définition du repère Objet.
Le repère Objet est ainsi défini dans le logiciel de commande.
Nacelle
RNacelle XNacelle
ZNacelle
ZObjet
RObjet
XObjet005
XYZ
T R0150
Figure 3 : Définition du repère Objet
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 8 / 65
2.2 AFFICHAGE DE LA POSITION
Dans le logiciel de commande, il est possible d’obtenir la position de la machine de deux manières différentes :
soit la position du repère Nacelle dans le repère Machine (RNacelle/RMachine)
soit la position du repère Objet dans le repère Utilisateur (RObjet/RUtil)
La figure ci-dessous illustre la différence entre les deux positions retournées :
Base
RMach
RObjet / RNacelle
RObjet / RUtil
RNacelle / RMach
RUtil
RUtil / RMach RNacelle
RObjet
Figure 4 : Affichage de la position de l'hexapode
Chaque position caractérise néanmoins les mouvements effectués avec l’hexapode. En fonction de l’application, il est préférable d’utiliser plutôt l’une ou l’autre des positions retournées.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 9 / 65
2.3 COMMANDE DE PILOTAGE
Dans le logiciel de commande, il est possible de piloter l’hexapode avec des consignes absolues et relatives. Les paragraphes ci-dessous introduisent les nuances entre ces différents modes de pilotage.
A noter que pour l’ensemble des modes de pilotage, le centre de rotation coïncide avec l’origine du repère Objet. De plus, le pilotage réalise d’abord les mouvements des composantes de translation (Tx, Ty, Tz) puis de rotation (Rx, Ry, Rz).
2.3.1 Notion de pilotage absolu
Les consignes absolues permettent directement de positionner et d’orienter le repère Objet par rapport au repère Utilisateur, qui est fixe. Il s’agit donc directement de définir RObjet/RUtil.
2.3.2 Notion de pilotage relatif
Dans certains cas, il est intéressant de pouvoir réaliser un mouvement par rapport à la position actuelle de l’objet (Robj_N). Ceci correspond à un mouvement relatif ; il est relatif à la position actuelle.
Souvent ce mouvement est exprimé dans le repère Objet, qui est mobile. Par exemple, cela correspond à l’ajustement de la position d’un miroir suivant sa normale. Mais parfois il peut être intéressant d’exprimer le mouvement relatif dans le repère Utilisateur, qui est fixe. Par exemple pour orienter l’objet, il est plus simple d’exprimer la rotation par rapport aux axes fixes du repère Utilisateur.
Aussi, le logiciel de commande introduit deux modes de pilotage relatif :
mouvements relatifs dans le repère Objet ( δRObjet / RObjet )
mouvements relatifs dans le repère Utilisateur ( δRUtil / RUtil )
Pour permettre de bien comprendre la nuance entre ces deux modes des illustrations sont données dans les paragraphes suivants.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 10 / 65
2.3.2.1 Mouvements relatifs dans le repère Objet
Les figures ci-dessous illustrent le mode de pilotage relatif dans le repère Objet.
La première illustre le cas général,
La seconde prend l’exemple d’un mouvement suivant l’axe X, pour une meilleure visualisation.
Principe général
RUtilRObjet_N+1 / RObjet_N
RObjet_N / RUtil
RObjet_N
RObjet_N+1
RObjet_N / RUtil : position actuelleRObjet_N+1 / RObjet_N : consigne de mouvement relatif exprimée dans le repère Objet actuel (RObjet_N)
Figure 5 : Mode de pilotage relatif dans le repère Objet - Principe
Exemple d’une translation suivant l’axe X
RUtil
RObjet_N+1 / RObjet_N
RObjet_N / RUtil
RObjet_N
X
RObjet_N / RUtil : position actuelleRObjet_N+1 / RObjet_N : consigne de mouvement relatif exprimée dans le repère Objet actuel (RObjet_N)
X
RObjet_N+1
Figure 6 : Mode de pilotage relatif dans le repère Objet – Exemple
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 11 / 65
2.3.2.2 Mouvements relatifs dans le repère Utilisateur
Les figures ci-dessous illustrent le mode de pilotage relatif dans le repère Utilisateur.
La première illustre le cas général,
La seconde prend l’exemple d’un mouvement suivant l’axe X, pour une meilleure visualisation.
Un repère virtuel est introduit pour faciliter l’explication. Il est nommé repère Utilisateur Image (RUtil_I). Le repère Utilisateur Image (RUtil_I) est l’image du repère Utilisateur (RUtil) ramenée à l’origine du repère Objet actuel (RObjet_N) :
Les axes du repère Utilisateur Image (RUtil_I) ont la même orientation que les axes du repère Utilisateur (RUtil).
L’origine du repère Utilisateur Image (RUtil_I) est confondue avec l’origine du repère Objet actuel (RObjet_N)
Principe général
RUtil_IRUtil
RObjet_N / RUtil
RObjet_N
RObjet_N+1 / RUtil_I
RObjet_N+1
RObjet_N / RUtil : position actuelleRUtil_I : repère Utilisateur ImageRObjet_N+1 / Rutil_I : consigne de mouvement relatif exprimée dans le repère Utilisateur Image (Rutil_I)
Figure 7 : Mode de pilotage relatif dans le repère Utilisateur - Principe
Exemple d’une translation suivant l’axe X
RUtil_I
RUtil
RObjet_N / RUtil
RObjet_N
RObjet_N+1 / RUtil_I
RObjet_N+1
RObjet_N / RUtil : position actuelleRUtil_I : repère Utilisateur ImageRObjet_N+1 / Rutil_I : consigne de mouvement relatif exprimée dans le repère Utilisateur Image (Rutil_I)
X
X
X
Figure 8 : Mode de pilotage relatif dans le repère Utilisateur – Exemple
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 12 / 65
2.4 VECTEURS DE ROTATION
La convention d’Euler type II est utilisée pour exprimer les vecteurs de rotation. Cette convention est couramment utilisée en aéronautique (norme concernant la mécanique du vol ISO1151).
Cette représentation utilise les notions de rotation des véhicules (navire, voiture et avion). Par convention, on considère le mouvement principal du véhicule suivant l’axe X et l’axe Z est parallèle à l’axe de gravité (en position initiale). Le roulis correspond à la rotation autour de l’axe X, le tangage à la rotation autour de l’axe Y et le lacet à la rotation autour de l’axe Z. L’ordre des rotations est le suivant : Rx, Ry et enfin Rz.
Le plus souvent ces rotations font référence à un repère fixe donc on utilise la notion de rotation à axes fixes. On obtient la matrice de rotation suivante :
ccscs
cssscssscccs
cscssssccscc
RxRyRzR
Figure isométrique 10� ; 20� ; 30�
Y0
X0 = X1
Y1
Y2 Y3
X2
X3Z3
Z2Z1
Z0
O
Remarque :
La convention d’Euler type II, correspondant aux rotations Rx puis Ry et enfin Rz à axes fixes, est équivalente à faire les rotations Rz puis Ry et enfin Rz à axes mobiles.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 13 / 65
3 MISE EN ROUTE
Suivre les étapes suivantes pour la mise en route de la machine :
Allumer le rack de contrôle : interrupteur « Power » sur la face avant et vérifier que le voyant est éclairé. Au démarrage du système, le voyant « Initialized » clignote.
Attendre que le voyant « Initialized » ne clignote plus. Dès qu’il est allumé, il est possible de communiquer avec le rack de contrôle. Un délai d’environ 5 secondes est nécessaire à l’initialisation du rack de contrôle.
Etablir la communication avec le rack de contrôle par liaison Ethernet
L’hexapode est prêt à fonctionner.
Interrupteur ON/OFFVoyant d’alimentation (LED verte)
Indicateurs:• Initialisation (LED verte)• Asservissement (LED verte)• En position (LED verte)• Arrêt d’urgence (LED rouge)• Erreur (LED verte)
Figure 9 : Face avant du rack de contrôle
Connecteurs Hexapode
Figure 10: Face arrière du rack de contrôle
L’adresse IP et le masque de sous réseau du contrôleur sont modifiables par l’intermédiaire d’un utilitaire. (Voir procédure en ANNEXE 1).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 14 / 65
4 COMMANDES
4.1 PROTOCOLE
La communication avec le contrôleur s’effectue par le protocole Ethernet Turbo PMAC (voir ANNEXE 2). Se référer à la documentation DeltaTau pour plus d’informations à ce sujet. Les commandes décrites par la suite doivent être « encapsulées » suivant ce protocole.
Les commandes décrites ici concernent uniquement les paramètres utiles à la mise en œuvre de l’hexapode. Le protocole Turbo PMAC donne accès à l’ensemble des paramètres du contrôleur. Cette ouverture permet de profiter pleinement des performances du contrôleur (temps de réponse, puissance de calcul, etc..).
En contre partie, la modification des variables non-décrites ici peut nuire au bon fonctionnement de l’hexapode. SYMETRIE décline toute responsabilité en cas de dommages occasionnés sur l’hexapode en cas de modification de paramètres du contrôleur non décrits dans la suite du document.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 15 / 65
4.2 TYPE DE COMMANDE
Il existe deux types de commandes :
Commande sans réponse : ordre
Commande avec réponse : demande d’information
Les paramètres, définis par l’utilisateur, associés à une commande sont appelés arguments. Le séparateur d’argument est l’espace. Exemple :
&2 Q71=0 Q72=0 Q73=0 Q74=0 Q75=0 Q76=0 Q80=0 Q20=11.
Le séparateur décimal pour les arguments est le point. Exemple :
Q71=1.234
Avant chaque appel d’une Q variable, il est impératif d’ajouter la commande « &2 » pour définir le système de coordonnée active comme étant celui de l’hexapode.
Les commandes de type ordre peuvent être exécutées uniquement lorsque le contrôleur est initialisé. Il est possible de vérifier l’initialisation du contrôleur avec la commande STATE#HEXA? (Cf. §4.5.6).
Note sur le fonctionnement des commandes qui utilisent la variable « Q20=yy ». Les modifications sur la variable Q20 sont analysées par un programme dédié. Il n’est pas possible de lancer simultanément plusieurs commandes avec la variable Q20.
Le traitement d’une commande « Q20=yy » s’effectue comme suit :
l’action associée à la commande « yy » est réalisée
une fois l’action « yy » exécutée, la variable Q20 est remise à zéro ou une valeur négative en cas d’échec.
If (Q20=yy)Action yyQ20=0
EndIf
Figure 11: Cycle de traitement de la commande yy
Pendant ce cycle, les modifications apportées à la variable Q20 ne sont pas gérées. Pour être certain que la commande a bien été réalisée, il faut attendre que la variable Q20 soit inférieur ou égal à 0. Dès que la variable Q20 remplie cette condition, il est possible d’envoyer une nouvelle commande de type ordre.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 16 / 65
4.3 ASTUCES
Les informations relatives à l’état du système sont groupées dans les variables Q20 à Q60, comme le montre le tableau suivant :
Index Variable Usage
20 Q20 Enum_Panel
21 - 25 Q21 - 25 reserve
26 Q26 Enum_Homing (debug)
27 Q27 Enum_PosRef (debug)
28 Q28 Enum_KinematicError (debug)
29 Q29 Enum_ValidPos
30 Q30 State_Axis#1
31 Q31 State_Axis#2
32 Q32 State_Axis#3
33 Q33 State_Axis#4
34 Q34 State_Axis#5
35 Q35 State_Axis#6
36 Q36 State_CS
37 Q37 State_I/O
38 Q38 State_Error
39 Q39 Seq_Running
40 Q40 Seq_Index
41 - 46 Q41 - 46 Readback actuator length
47 - 52 Q47 - 52 Readback position (Platform CS with respect to Machine CS)
53 - 58 Q53 - 58 Readback position (Object CS with respect to User CS)
59 Q59 Temperature in the controller enclosure
60 Q60 reserve
Il est possible de récupérer l’ensemble des états de l’hexapode en une seule interrogation avec la commande suivante :
&2 Q20..60
Cette commande retourne les valeurs des variables Q20 à Q60 dans le système de coordonnées 2. Le système de coordonnées 2 correspond au pilotage de l’hexapode. Les variables sont retournées les une à la suite des autres en commençant par Q20.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 17 / 65
Autre astuces pour la récupération de variables :
&2 Q41,6,1
Cette commande retourne les valeurs des variables Q41 jusqu’à 46. Soit au total six variables à la suite.
&2 Q40,6,10
Cette commande retourne les valeurs des variables Q40, Q50, Q60, Q70, Q80 et Q90. Soit au total six variables avec un pas de 10.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 18 / 65
4.4 COMMANDES DE TYPE « ORDRE »
4.4.1 STOP
Commande &2 Q20=2
Type Ordre
Description Demande l’arrêt des mouvements en cours.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments Aucun
4.4.2 HOMING
Commande &2 Q20=1
Type Ordre
Description Déclenche le cycle de prise d’origines machine.
Lorsque l’hexapode est équipé de codeur absolu, ce cycle est exécuté automatiquement au démarrage de l’hexapode.
La prise d’origine est nécessaire avant de pouvoir réaliser une commande de mouvement. En l’absence de codeur absolu, la prise d’origine est effectuée en réalisant un déplacement sur chaque actionneur jusqu’à détecter un capteur de référence.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 19 / 65
4.4.3 CONTROLON
Commande &2 Q20=3
Type Ordre
Description Active l’asservissement des moteurs.
Cette commande est nécessaire avant de réaliser un mouvement. Cette commande est réalisée uniquement si les conditions suivantes sont respectées :
le bouton d’arrêt d’urgence n’est pas enclenché
le contrôleur n’est pas dans un état d’erreur
A noter qu’il est possible d’asservir les moteurs même si la prise d’origine n’a pas été effectuée.
La variable Q20 retourne les valeurs suivantes en fonction du déroulement de la commande :
Q20 Interprétation
0 commande exécutée avec succès
-1 commande ignorée pour non respect des conditions d’exécution
-2 erreur : la mise sous asservissement des moteurs a échouée
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 20 / 65
4.4.4 CONTROLOFF
Commande &2 Q20=4
Type Ordre
Description Désactive l’asservissement des moteurs.
Il est judicieux de désactiver l’asservissement des moteurs si l’hexapode n’est pas utilisé pendant un certain temps (plus d’une ½ heure par exemple). Néanmoins, cette recommandation dépend de l’application pour laquelle le système est utilisé.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 21 / 65
4.4.5 MOVE
Commande &2 Q70=cm Q71=x Q72=y Q73=z Q74=rx Q75=ry Q76=rz Q20=11
Type Ordre
Description Demande la réalisation du mouvement défini par les arguments.
Les arguments sont séparés par des espaces. Le séparateur décimal pour les arguments est le point.
Suivant le mode de pilotage, le mouvement donné en paramètre de la commande MOV est interprété différemment :
Mode Interprétation
0 Mouvement absolu
1 Mouvement relatif objet
2 Mouvement relatif utilisateur
Cette commande est réalisée uniquement si les conditions suivantes sont respectées :
le bouton d’arrêt d’urgence n’est pas enclenché
la prise d’origine est effectuée (Cf. §4.4.2)
les asservissements moteurs sont actifs (Cf. §4.4.3)
aucun mouvement n’est en cours d’exécution
le contrôleur n’est pas dans un état d’erreur
La variable Q20 retourne les valeurs suivantes en fonction du déroulement de la commande :
Q20 Interprétation
0 commande exécutée avec succès
mouvement démarré / pas d’attente de la fin du mouvement
-1 commande ignorée pour non respect des conditions d’exécution
-2 erreur : commande de mouvement non valide
Lorsque la variable Q20 retourne la valeur -2, il est possible de connaitre la raison pour laquelle la consigne de mouvement n’est pas réalisable en interrogeant la variable Q29. Se référer à la commande POSVALID? (Cf. §4.5.4) pour interpréter la valeur retournée dans cette variable.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 22 / 65
Arguments 7
cm : mode de pilotage / paramètre Q70
x : position en X (mm) / paramètre Q71
y : position en Y (mm) / paramètre Q72
z : position en Z (mm) / paramètre Q73
rx : rotation autour de l’axe X (deg) / paramètre Q74
ry : rotation autour de l’axe Y (deg) / paramètre Q75
rz : rotation autour de l’axe Z (deg) / paramètre Q76
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 23 / 65
4.4.6 SPECIFICPOS
Commande &2 Q80=pos Q20=13
Type Ordre
Description Demande d’atteindre une position spécifique définie par l’argument « pos » (paramètre Q80) :
POS Interprétation
0 Position zéro (JOG / Maintenance uniquement)
1 Position zéro
2 Position rétractée
Cette commande est réalisée uniquement si les conditions suivantes sont respectées :
le bouton d’arrêt d’urgence n’est pas enclenché
la prise d’origine est effectuée (Cf. §4.4.2)
les asservissements moteurs sont actifs (Cf. §4.4.3)
aucun mouvement n’est en cours d’exécution
le contrôleur n’est pas dans un état d’erreur (sauf pour l’argument pos = 0)
Remarque sur le mode POS = 0 :
Ce mode doit être utilisé uniquement en cas de défaillance de un ou plusieurs actionneurs ou défaut généralisé du contrôleur. Avec ce mode, la position zéro est atteinte en pilotant chaque actionneur en mode JOG sans interpolation inter-axes (cinématique désactivée). Un enum spécifique indique le résultat du déroulement de cette commande (Cf. « PosRef » §4.5.7)
Les positions spécifiques « Zéro » et « Rétractée » sont définies en usine et correspondent toujours à la même position de l’hexapode, quelque soit les repères Utilisateur ou Object définit.
La variable Q20 retourne les valeurs suivantes en fonction de son déroulement :
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 24 / 65
Q20 Interprétation
0 commande exécutée avec succès (mouvement démarré )
-1 commande ignorée pour non-respect des conditions d’exécution
-2 erreur : commande de mouvement non valide
Lorsque la variable Q20 retourne la valeur -2, il est possible de connaitre la raison pour laquelle la consigne de mouvement n’est pas réalisable en interrogeant la variable Q29. Se référer à la commande POSVALID? (Cf. §4.5.4) pour interpréter la valeur retournée dans cette variable.
Arguments 1
pos : position spécifique à atteindre / paramètre Q80
0 : position zéro (atteinte en mode JOG / mode maintenance)
1 : position zéro (cinématique activée)
1 : position rétractée (cinématique activée)
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 25 / 65
4.4.7 CLEARERROR
Commande &2 Q20=15
Type Ordre
Description Efface les codes d’erreur.
Cette commande remet à zéro les états d’erreur dans le logiciel de commande. Le code d’erreur actuel n’est pas retourné par cette commande. Se référer à la commande « STATE#HEXA? » (Cf. §4.5.11) pour obtenir les codes d’erreur.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 26 / 65
4.4.8 JOG
Commande &2 Q68=axis Q69=inc Q20=41
Type Ordre
Description Demande la réalisation d’un mouvement type JOG à l’actionneur défini par les arguments. Il s’agit d’une fonctionnalité de maintenance.
Les arguments sont séparés par des espaces. Le séparateur décimal pour les arguments est le point. L’argument « inc » correspond à l’amplitude du déplacement à réaliser sur l’actionneur. Il s’agit donc d’une commande de mouvement relatif. Il est également important de prendre conscience qu’un déplacement de x millimètres à l’actionneur, ne correspond pas directement à x millimètres dans le volume de travail de l’hexapode.
Cette commande est réalisée uniquement si les conditions suivantes sont respectées :
le bouton d’arrêt d’urgence n’est pas enclenché
aucun mouvement n’est en cours d’exécution
La variable Q20 retourne les valeurs suivantes en fonction du déroulement de la commande :
Q20 Interprétation
0 commande exécutée avec succès
mouvement démarré / pas d’attente de la fin du mouvement
-1 commande ignorée pour non respect des conditions d’exécution
Remarque :
Ce mode de pilotage doit être utilisé uniquement pour des opérations de maintenance, par des opérateurs qualifiés. En effet, les déplacements effectués ne sont pas complètement sécurisés (volume de travail, angles des articulations, etc…). Avec ce mode de pilotage, il est possible de sortir du volume de travail autorisé et engendrer des collisions mécaniques. Aussi, SYMETRIE recommande d’utiliser cette fonctionnalité avec beaucoup de précautions.
Arguments 2
axis : numéro de l’actionneur (1 à 6) / paramètre Q68
inc : incrément à réaliser (mm) / paramètre Q69
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 27 / 65
4.4.9 RESET SOFT
Commande $$$
Type Ordre
Description Reset et réinitialise complètement le contrôleur de l’hexapode avec le cycle standard de démarrage. Cette commande est équivalente à éteindre l’alimentation logique du rack de contrôle.
Attention, les modifications effectuées sur les paramètres associés aux commandes de la famille « CFG » sont perdues lors de cette commande. Il faut d’abord faire la commande CFG#SAVE (§4.4.14) pour sauvegarder la configuration.
Remarque : cette commande provoque le passage du contrôleur en l’état « Réinitialisation / redémarrage ». Aussi, aucun caractère d’accusé de réception (ACK ou LF) n’est retourné au contrôleur émetteur de cette commande.
Un délai d’environ 30 secondes est requis pour l’exécution de cette commande.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 28 / 65
4.4.10 CFG#CS
Commande &2 Q80= xu Q81= yu Q82= zu Q83= rxu Q84= ryu Q85= rzu
Q86= xo Q87= yo Q88= zo Q89= rxo Q90= ryo Q91= rzo Q20=21
Type Ordre
Description Modifie la définition du repère Utilisateur et du repère Objet.
Les paramètres xu, yu, zu, rxu, ryu et rzu permettent de définir le repère Utilisateur par rapport au repère Machine et les paramètres xo, yo, zo, rxo, ryo
et rzo permettent de définir le repère Objet par rapport au repère Nacelle (Cf. notions du §2).
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande s’exécute avec succès s’il n’y a pas de mouvements en cours et la commande est terminée lorsque Q20 repasse à zéro. Si un mouvement est en cours, la configuration est ignorée et la variable Q20 retourne la valeur -1.
Une fois la commande terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant les variables Q80..91 comme pour la commande CFG#CS? (Cf. §4.5.11).
Arguments 12
xu : position en X (mm) / paramètre Q80
yu : position en Y (mm) / paramètre Q81
zu : position en Z (mm) / paramètre Q82
rxu : rotation autour de l’axe X (deg) / paramètre Q83
ryu : rotation autour de l’axe Y (deg) / paramètre Q84
rzu : rotation autour de l’axe Z (deg) / paramètre Q85
xo : position en X (mm) / paramètre Q86
yo : position en Y (mm) / paramètre Q87
zo : position en Z (mm) / paramètre Q88
rxo : rotation autour de l’axe X (deg) / paramètre Q89
ryo : rotation autour de l’axe Y (deg) / paramètre Q90
rzo : rotation autour de l’axe Z (deg) / paramètre Q91
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 29 / 65
4.4.11 CFG#DEFAULT
Commande &2 Q20=51
Type Ordre
Description Restaure les paramètres par défaut pour l’ensemble des commandes de la famille « CFG ».
Les paramètres restaurés ne sont pas sauvegardés avec cette commande. Se référer à la commande CFG#SAVE (Cf. §4.4.14) pour sauvegarder les paramètres par défaut afin de les retrouver après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 30 / 65
4.4.12 CFG#LIMITS
Commande &2 Q80=x- Q81=x+ Q82=y- Q83=y+ Q84=z- Q85=z+ Q86=rx- Q87=rx+ Q88=ry- Q89=ry+ Q90=rz- Q91=rz+ Q92 = enabled Q20=cs
Type Ordre
Description Modifie les limites du volume de travail de l’hexapode.
Le volume de travail spécifié en paramètre est délimité dans le repère Utilisateur ou Machine en fonction de l’argument CS (Cf. notions du §2).
L’argument « Enabled » agit sur le même paramètre que la commande CFG#LIMITS_ENABLED (Cf. §4.4.13) à la différence près qu’ici l’activation ou inhibition des limites s’applique uniquement dans le repère Utilisateur ou Machine en fonction de l’argument CS sélectionné.
Remarque : il est impératif de renseigner le paramètre Q92 pour pouvoir activer les limites.
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande s’exécute avec succès s’il n’y a pas de mouvements en cours et la commande est terminée lorsque Q20 repasse à zéro. Si un mouvement est en cours, la configuration est ignorée et la variable Q20 retourne la valeur -1.
Une fois terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant les variables Q80..91 comme pour la commande CFG#LIMITS? (Cf. §4.5.12).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 31 / 65
Arguments 13
x- : limite négative position en X (mm) / paramètre Q80
x+ : limite positive position en X (mm) / paramètre Q81
y- : limite négative position en Y (mm) / paramètre Q82
y+ : limite positive position en Y (mm) / paramètre Q83
z- : limite négative position en Z (mm) / paramètre Q84
z+ : limite positive position en Z (mm) / paramètre Q85
rx- : limite négative rotation autour de l’axe X (deg) / paramètre Q86
rx+ : limite positive rotation autour de l’axe X (deg) / paramètre Q87
ry- : limite négative rotation autour de l’axe Y (deg) / paramètre Q88
ry+ : limite positive rotation autour de l’axe Y (deg) / paramètre Q89
rz- : limite négative rotation autour de l’axe Z (deg) / paramètre Q90
rz+ : limite positive rotation autour de l’axe Z (deg) / paramètre Q91
enabled : 1 = limites actives et 0 = limites désactivées / paramètre Q92
cs : 22 = machine et 23 = utilisateur
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 32 / 65
4.4.13 CFG#LIMITS_ENABLED
Commande &2 Q80=mask Q20=24
Type Ordre
Description Spécifie quels sont les limites du volume de travail de l’hexapode actives définies avec la commande CFG#LIMITS (Cf. §4.4.12).
Remarque : si les limites opérateur ne sont pas actives (mask=0), les limites intrinsèques à la machine (paramètre usine) sont toujours présentes pour garantir la sécurité de l’hexapode. La commande CFG#LIMITS_ENABLED » agit uniquement sur les limites opérateurs additionnels.
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro. Une fois terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant la variable Q80 comme pour la commande CFG#LIMIT_ENABLED? (Cf. §4.5.13).
Arguments 1
Mask
0 : pas de limites actives
1 : uniquement les limites dans le repère machine
2 : uniquement les limites dans le repère utilisateur
3 : les limites dans le repère machine et utilisateur
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 33 / 65
4.4.14 CFG#SAVE
Commande &2 Q20=50
Type Ordre
Description Sauvegarde les paramètres modifiés par l’ensemble des commandes de la famille « CFG ».
Cette commande entraine la sauvegarde des paramètres de configuration utilisateur dans une mémoire flash non volatile. La sauvegarde des 512 octets de paramètres s’effectue en quelques millisecondes (durée estimée à ~5ms). Lors de l’exécution de la commande, certaines tâches peuvent être perturbées (calcul de la position machine, gestion des sécurités, etc..). L’asservissement des axes est garanti pendant l’exécution de cette commande.
La durée d’exécution de la commande est plus longue à chaque 256ème exécution du fait d’un processus interne de gestion de la mémoire. La durée d’enregistrement est alors estimée par le fabricant entre 1 et 2 secondes.
La mémoire flash est garantie par le constructeur pour 25 000 000 écritures. Compte tenu de cette information, nous recommandons de ne pas utiliser la commande CFG#SAVE après chaque modification de la configuration afin de garantir la durée de vie de l’hexapode et du contrôleur.
La sauvegarde des paramètres est terminée lorsque Q20 repasse à zéro. Si une erreur c’est produit lors de l’enregistrement, la valeur -2 est affectée à la variable Q20.
Arguments Aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 34 / 65
4.4.15 CFG#SPEED
Commande &2 Q80=vt Q81=vr Q20=25
Type Ordre
Description Configuration de la vitesse de mouvement.
Les arguments sont exprimés avec les unités suivantes :
vt : vitesse en translation, unité = mm par seconde
vr : vitesse en rotation, unité = deg par seconde
Les arguments vt et vr sont automatiquement borné par le contrôleur entre les vitesses minimales et maximales autorisées pour l’hexapode :
max_,min_ vtvtvt
max_,min_ vrvrvr
La commande CFG#SPEED? (Cf. §4.5.15) permet de connaitre les grandeurs limites pour les paramètres de vitesse.
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Une fois la commande terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant les variables Q80..84 comme pour la commande CFG#SPEED? (Cf. §4.5.15).
Arguments 2
vt : vitesse en translation
vr : vitesse en rotation
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 35 / 65
4.4.16 CFG#STALLCURRENT
Commande &2 Q80= Stallcurrent Q20=26
Type Ordre
Description Configuration du courant de maintien (s’applique uniquement pour des moteurs pas à pas)
Courant de maintien lorsque le moteur est à l’arrêt exprimé en pourcentage du courant nominal du moteur. La valeur retournée est comprise entre 0 et 100 %.
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Une fois la commande terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant la variable Q80 comme pour la commande CFG#STALLCURRENT? (Cf. §4.4.16).
Arguments 1
Stallcurrent : courant de maintien
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 36 / 65
4.4.17 CFG#BACKLASH
Commande &2 Q80= Axis Q81= Value Q20=27
Type Ordre
Description Paramètres pour le mouvement de compensation de backlash.
Le mouvement de compensation de backlash définit par les paramètres Axis et Value permet de définir une stratégie (dans le volume de travail) pour atteindre les consignes de positionnement avec toujours le même mouvement d’approche.
Exemple : Axis = 3, Value = 0.001
Soit une stratégie de compensation de backlash de 1 µm en Z
Consigne de mouvement : Tx = 10, Ty = 0, Tz = 0, Rx = 0, Ry = 0, Rz = 0
L’hexapode va réaliser en automatique les déplacements suivant :
Tx = 10, Ty = 0, Tz = - 0,001, Rx = 0, Ry = 0, Rz = 0
Tx = 10, Ty = 0, Tz = 0, Rx = 0, Ry = 0, Rz = 0
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Une fois la commande terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant la variable Q80 comme pour la commande CFG#BACKLASH? (Cf. §4.4.17).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 37 / 65
Arguments 2
Axis : paramètre Q80
0 : mouvement de compensation de backlash désactivé
1 : Tx
2 : Ty
3 : Tz
4 : Rx
5 : Ry
6 : Rz
Value : paramètre Q81
Unité : mm si Axis = 1, 2 ou 3
Unité : deg si Axis = 4, 5 ou 6
L’argument Value est automatiquement contraint à une valeur comprise entre - 0.5 et 0.5 mm ou deg
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 38 / 65
4.4.18 CFG#HEXAPARAM
Commande &2 Q80= SN_FP Q81= SN_MP Q82= SN_A1 Q83= SN_A2 Q84 = SN_A3 Q85= SN_A4 Q86= SN_A5 Q87= SN_A6 Q20=29
Type Ordre
Description Paramètres pour la définition de l’hexapode.
Modifie les éléments composant la machine. L’utilisateur doit renseigner le plateau fixe, la plateforme mobile ainsi que les 6 actionneurs utilisés sur l’hexapode.
Pour chaque paramètre, l’utilisateur ne doit renseigner que les deux derniers chiffres du numéro de série du composant.
Exemple : SN_FP=10, SN_MP=10, SN_A1=11, SN_A2= 12, SN_A3= 13, SN_A4= 14, SN_A5=15, SN_A6=16
L’hexapode est définie comme composée de :
- Plateau fixe : 14067_10
- Plateforme mobile : 14067_10
- Actionneur en position 1 : 14067_11
- Actionneur en position 2 : 14067_12
- Actionneur en position 3 : 14067_13
- Actionneur en position 4 : 14067_14
- Actionneur en position 5 : 14067_15
- Actionneur en position 6 : 14067_16
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Une fois la commande terminée, il est possible de connaitre le paramétrage utilisé par le contrôleur, sans nouvelle commande, en interrogeant les variables Q80 à Q87 comme pour la commande CFG# HEXAPARAM? (Cf. §4.5.18).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 39 / 65
Arguments 8
SN_FP : paramètre Q80
01 : Plateau fixe portant le numéro de série 13067_01
10 : Plateau fixe portant le numéro de série 14067_10
20 : Plateau fixe portant le numéro de série 14067_20
30 : Plateau fixe portant le numéro de série 14067_30
SN_MP : paramètre Q81
01 : Plateau mobile portant le numéro de série 13067_01
10 : Plateau mobile portant le numéro de série 14067_10
20 : Plateau mobile portant le numéro de série 14067_20
30 : Plateau mobile portant le numéro de série 14067_30
SN_A1 : paramètre Q82
Numéro de l’actionneur à la position 1 de l’hexapode
SN_A2 : paramètre Q83
Numéro de l’actionneur à la position 2 de l’hexapode
SN_A3 : paramètre Q84
Numéro de l’actionneur à la position 3 de l’hexapode
SN_A4 : paramètre Q85
Numéro de l’actionneur à la position 4 de l’hexapode
SN_A5 : paramètre Q86
Numéro de l’actionneur à la position 5 de l’hexapode
SN_A6 : paramètre Q87
Numéro de l’actionneur à la position 6 de l’hexapode
Plateau Fixe
Plateforme Mobile
5
1
2
4
6
3
Y
XZPosition des
actionneurs
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 40 / 65
4.4.19 CFG#ACTUATORPARAM
Commande &2 Q80= Axis Q20=30
Type Ordre
Description Configuration de la position codeur de référence.
Permets au contrôleur de récupérer la position codeur associée à la position de référence de l’actionneur.
Exemple : Axis = 3
Le contrôleur va lire la position codeur de l’actionneur définit à la position 3 de l’hexapode et la définit comme nouvelle valeur de référence de cet axe.
Cette configuration n’est pas sauvegardée automatiquement. Il faut utiliser la commande CFG#SAVE (Cf. §4.4.14) pour retrouver ces paramètres après l’arrêt du rack de contrôle.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments 1
Axis : paramètre Q80
1 : Actionneur en position 1
2 : Actionneur en position 2
3 : Actionneur en position 3
4 : Actionneur en position 4
5 : Actionneur en position 5
6 : Actionneur en position 6
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 41 / 65
4.5 COMMANDES DE TYPE « DEMANDE D’INFORMATION »
4.5.1 VERSION?
Commande &2 Q20=55 puis Q80,4,1 lorsque Q20=0
Type Demande d’information
Description Cette commande retourne la version du logiciel du contrôleur, le numéro de série et l’indice de l’hexapode
Arguments Aucun
Réponse Version du logiciel / paramètre Q80
Date de création du firmware (format YYMMDD) / paramètre Q81
Numéro de série de l’hexapode / paramètre Q82
Indice de l’hexapode / paramètre Q83
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 42 / 65
4.5.2 POSUSER?
Commande &2 Q53,6,1
Type Demande d’information
Description Demande la position actuelle de l’hexapode. Il s’agit de la position du repère Objet dans le repère Utilisateur (Cf. notions du §2).
Arguments aucun
Réponse x : position en X (mm) / paramètre Q53
y : position en Y (mm) / paramètre Q54
z : position en Z (mm) / paramètre Q55
rx : rotation autour de l’axe X (deg) / paramètre Q56
ry : rotation autour de l’axe Y (deg) / paramètre Q57
rz : rotation autour de l’axe Z (deg) / paramètre Q58
4.5.3 POSMACH?
Commande &2 Q47,6,1
Type Demande d’information
Description Demande la position actuelle de l’hexapode. Il s’agit de la position du repère Nacelle dans le repère Machine (Cf. notions du §2).
Arguments aucun
Réponse x : position en X (mm) / paramètre Q47
y : position en Y (mm) / paramètre Q48
z : position en Z (mm) / paramètre Q49
rx : rotation autour de l’axe X (deg) / paramètre Q50
ry : rotation autour de l’axe Y (deg) / paramètre Q51
rz : rotation autour de l’axe Z (deg) / paramètre Q52
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 43 / 65
4.5.4 POSVALID?
Commande &2 Q70=cm Q71=x Q72=y Q73=z Q74=rx Q75=ry Q76=rz Q20=10
puis Q29 lorsque Q20=0
Type Demande d’information
Description Demande si le mouvement défini par les arguments est réalisable.
Les arguments sont séparés par des espaces. Le séparateur décimal pour les arguments est le point.
Suivant le mode de pilotage, le mouvement donné en paramètre de la commande MOV est interprété différemment :
Mode Interprétation
0 Mouvement absolu
1 Mouvement relatif objet
2 Mouvement relatif utilisateur
Cette commande est équivalente à la commande MOV, sauf que le mouvement n’est pas exécuté. Elle permet de valider que le mouvement est réalisable par la machine.
Cette commande est terminée lorsque Q20 repasse à zéro.
Arguments cm : mode de pilotage
x : position en X (mm)
y : position en Y (mm)
z : position en Z (mm)
rx : rotation autour de l’axe X (deg)
ry : rotation autour de l’axe Y (deg)
rz : rotation autour de l’axe Z (deg)
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 44 / 65
Réponse La variable Q29 est un nombre décimal qui correspond au regroupement de plusieurs bits. Chaque bit représente une erreur particulière lors la validation du mouvement, tel que décrit dans le tableau suivant :
Bit Fonction
0 Prise d’origine non effectuée
1 Définition des repères non effectuée
2 Erreur cinématique
3 Hors volume de travail SYMETRIE
4 Hors volume de travail machine (Cf. §4.4.12)
5 Hors volume de travail utilisateur
6 Hors limites actionneur
7 Hors limites articulations
8 Hors limites dû à la compensation de backlash
9 Entrée « Abort » active
10-15 Entrée « Safety sensor » active
Réserve
Exemple Q29 = 352
352 (décimal) convertit en binaire donne : 01 0110 0000
Soit les bits 5,6 et 8 sont actifs. Aussi, la consigne de position n’est pas valide pour les raisons suivantes :
Consigne hors volume de travail utilisateur
Consigne hors limite course actionneur
Les dépassements précédents sont apparus notamment lors de la validation du mouvement de compensation de backlash.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 45 / 65
4.5.5 STATE#AXIS?
Commande &2 Q30,6,1
Type Demande d’information
Description Demande l’état général des actionneurs
Arguments Aucun
Réponse Etat actionneur 1 / paramètre Q30
Etat actionneur 2 / paramètre Q31
Etat actionneur 3 / paramètre Q32
Etat actionneur 4 / paramètre Q33
Etat actionneur 5 / paramètre Q34
Etat actionneur 6 / paramètre Q35
Chaque paramètre correspond à un nombre décimal qui correspond au regroupement de plusieurs bits d’état. Chaque bit de l’état représente un paramètre particulier du système, tel qu’ils sont décrits dans le tableau suivant :
Bit Fonction Signification des valeurs
0 1
0 En position Non Oui
1 Asservissement des moteurs Non Oui
2 Prise d’origines effectuée Non Oui
3 Input « Home switch » Non
Circuit ouvert
Oui
Circuit fermé
4 Input « Positive limit switch »
5 Input « Negative limit switch »
6 Frein actif Non Oui
7 Erreur de poursuite (avertissement) Non Oui
8 Erreur de poursuite Non Oui
9 Erreur actionneur hors limites Non Oui
10 Erreur servo-drive Non Oui
12 Erreur codeur Non Oui
13 Erreur phasing (moteur bruhless uniquement) Non Oui
14 - 23 Réserve Non Oui
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 46 / 65
4.5.6 STATE#HEXA?
Commande &2 Q36
Type Demande d’information
Description Demande l’état général de l’hexapode.
Arguments Aucun
Réponse Etat général / paramètre Q36
Le statut est un nombre décimal qui correspond au regroupement de plusieurs bits d’état. Chaque bit de l’état représente un paramètre particulier du système, tel qu’ils sont décrits dans le tableau suivant :
Bit Fonction Signification des valeurs
0 1
0 Erreur (OU) Non Oui
1 Système initialisé Non Oui
2 En position Non Oui
3 Asservissement des moteurs Non Oui
4 Prise d’origines effectuée Non Oui
5 Frein actif Non Oui
6 Arrêt d’urgence enclenché Non Oui
7 Erreur de poursuite (avertissement) Non Oui
8 Erreur de poursuite Non Oui
9 Erreur actionneur hors limites Non Oui
10 Erreur servo-drive Non Oui
11 Erreur codeur Non Oui
12 Erreur phasing (moteur bruhless uniquement) Non Oui
13 Erreur prise d’orgine Non Oui
14 Erreur cinématique Non Oui
15 Erreur entrée « abort » Non Oui
16 Erreur R/W mémoire flash Non Oui
17-23 Réserve Non Oui
Le premier bit indique si le système est en erreur (nulle si la commande STATE#ERROR? (Cf. §4.5.8) / Paramètre Q37 retourne 0). La commande ERRORCLEAR (Cf. §4.4.7) permet d’effacer les erreurs.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 47 / 65
Exemple Q36 = 30
Décodage 2^4 = 16 2^3 = 8 2^2 = 4 2^1 = 2 2^0 = 1
30 = 1 1 1 1 0
Fonction Prise d’origines effectuée
Asservissement des
moteurs
En position Système initialisé
Erreur
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 48 / 65
4.5.7 STATE#DEBUG?
Commande &2 Q26,3,1 Q20
Type Demande d’information
Description Demande l’état de statuts de débogage
Arguments Aucun
Réponse Enum « Homing » : état de la prise d’origine / paramètre Q26
Valeur Signification
0 Indéfini
1 Prise d’origine en cours
2 Prise d’origine effectuée
3 Erreur
Enum « PosRef » : état de la commande PosRef / paramètre Q27
Valeur Signification
0 Indéfini
1 Erreur entrée abort
2 Mouvement en cours
3 Position atteinte
4 Erreur
Enum « KinError » : erreurs dans les calculs de cinématique / paramètre Q28
Valeur Signification
0 aucune
1 Prise d’origine non effectuée
2 Modèle géométrique inverse (MGI) – espace opérationnel
3 Modèle géométrique inverse (MGI) – espace articulaire
4 Modèle géométrique direct (MGD) – espace opérationnel
5 Modèle géométrique direct (MGD) – itération max.
6 Calcul de position (PLCC) – espace opérationnel
7 Calcul de position (PLCC) – itération max.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 49 / 65
Enum « Panel » : état du panel / paramètre Q20
Index Commande
-2 Command error
-1 Ignored / Command not allowed
0 None
1 Homing
2 Stop
3 Control ON
4 Control OFF
10 Valid POS
11 Move
12 Sequence
13 Specific POS
15 Clear error
20 Set config
21 Config CS
22 Config Limits_mTn
23 Config Limits_uTo
24 Config Limits_Enabled
25 Config Speed
26 Config Current
27 Config Backlash
30 Get config
31 Config CS
32 Config Limits_mTn
33 Config Limits_uTo
34 Config Limits_Enabled
35 Config Speed
36 Config Current
37 Config Baklash
40 Maintenance
41 Jog
50 Config Save
51 Config Default
52 Config Saved?
55 Version
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 50 / 65
4.5.8 STATE#ERROR?
Commande &2 Q38
Type Demande d’information
Description Demande la présence d’une erreur sur le système. S’il n’y a pas d’erreur, le retour est égal à zéro ; sinon code d’erreur donne accès aux erreurs actives.
Arguments Aucun
Réponse Code d’erreur / paramètre Q38
Le code d’erreur est un nombre décimal qui correspond au regroupement de plusieurs états d’erreur. Chaque bit représente une erreur particulière du système.
Le paramètre Q38 correspond aux erreurs listées à partir du bit 8 dans la commande « STATE#HEXA? » (Cf. §4.5.6).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 51 / 65
4.5.9 STATE#IO?
Commande &2 Q37
Type Demande d’information
Description Demande l’état des entrées-sorties (GPIO1 et GPIO2)
Arguments Aucun
Réponse Etat entrées-sorties / paramètre Q37
Le statut est un nombre décimal qui correspond au regroupement de plusieurs bits d’état. Chaque bit de la variable représente l’état du entrée / sorties du contrôleur, tel qu’ils sont décrits dans le tableau suivant :
Bit Fonction Signification des valeurs
0 1
0 GPIO1 – Input 1 0V +24 Vin
1 GPIO1 – Output 1
Image statut LED « En position »
0V +24 Vout
2 GPIO1 – Output 2 0V +24 Vout
3 GPIO2 – Input 1 0V +24 Vin
4 GPIO2 – Input 2 0V +24 Vin
5 GPIO2 – Input 3 0V +24 Vin
6 GPIO2 – Input 4 0V +24 Vin
7 GPIO2 – Input 5 0V +24 Vin
8 GPIO2 – Input 6 0V +24 Vin
9 GPIO2 – Input 7 0V +24 Vin
10 GPIO2 – Input 8 0V +24 Vin
Se référer au manuel utilisateur de l’hexapode pour connaitre les fonctionnalités liées à ces entrées-sorties et comment les mettre en œuvre.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 52 / 65
4.5.10 STATE#TEMPERATURE?
Commande &2 Q59
Type Demande d’information
Description Demande la température à l’intérieur du contrôleur
Arguments Aucun
Réponse Température en °C / paramètre Q59
La plage de mesure s’étend de -10°C à +80°C.
La résolution de la mesure est de 0.641°C
Aucune sécurité n’est gérée à partir de la mesure de la température.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 53 / 65
4.5.11 CFG#CS?
Commande &2 Q20=31 puis Q80,12,1 lorsque Q20=0
Type Demande d’information
Description Demande la définition du repère Utilisateur et du repère Objet
Arguments aucun
Réponse xu : position en X (mm) / paramètre Q80
yu : position en Y (mm) / paramètre Q81
zu : position en Z (mm) / paramètre Q82
rxu : rotation autour de l’axe X (deg) / paramètre Q83
ryu : rotation autour de l’axe Y (deg) / paramètre Q84
rzu : rotation autour de l’axe Z (deg) / paramètre Q85
xo : position en X (mm) / paramètre Q86
yo : position en Y (mm) / paramètre Q87
zo : position en Z (mm) / paramètre Q88
rxo : rotation autour de l’axe X (deg) / paramètre Q89
ryo : rotation autour de l’axe Y (deg) / paramètre Q90
rzo : rotation autour de l’axe Z (deg) / paramètre Q91
Les paramètres xu, yu, zu, rxu, ryu et rzu permettent de définir le repère Utilisateur par rapport au repère Machine et les paramètres xo, yo, zo, rxo, ryo
et rzo permettent de définir le repère Objet par rapport au repère Nacelle (Cf. notions du §2).
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 54 / 65
4.5.12 CFG#LIMITS?
Commande &2 Q20=cs puis Q80,13,1 lorsque Q20=0
Type Demande d’information
Description Demande les limites du volume de travail de l’hexapode.
Arguments L’argument « cs » permet de spécifier le repère dans lequel les limites sont exprimées :
cs=32 : repère Nacelle dans le repère Machine
cs=33 : repère Objet dans le repère Utilisateur
Remarque : il est impératif de renseigner le paramètre Q92 pour pouvoir activer les limites.
Réponse x- : limite négative position en X (mm) / paramètre Q80
x+ : limite positive position en X (mm) / paramètre Q81
y- : limite négative position en Y (mm) / paramètre Q82
y+ : limite positive position en Y (mm) / paramètre Q83
z- : limite négative position en Z (mm) / paramètre Q84
z+ : limite positive position en Z (mm) / paramètre Q85
rx- : limite négative rotation autour de l’axe X (deg) / paramètre Q86
rx+ : limite positive rotation autour de l’axe X (deg) / paramètre Q87
ry- : limite négative rotation autour de l’axe Y (deg) / paramètre Q88
ry+ : limite positive rotation autour de l’axe Y (deg) / paramètre Q89
rz- : limite négative rotation autour de l’axe Z (deg) / paramètre Q90
rz+ : limite positive rotation autour de l’axe Z (deg) / paramètre Q91
enabled : 1 = limites actives et 0 = limites désactivées / paramètre Q92
Le paramètre « Enabled » indique si les limites renseignées sont actives. Cette information est similaire au résultat de la commande CFG#LIMITS_ENABLED? (Cf. §4.5.13) à la différence près qu’ici, l’information concerne uniquement le repère d’expression définit par l’argument « cs ».
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 55 / 65
4.5.13 CFG#LIMITS_ENABLED?
Commande &2 Q20=34 puis Q80 lorsque Q20=0
Type Demande d’information
Description Demande quels sont les limites du volume de travail actives
Arguments aucun
Réponse mask : paramètre Q80
0 : pas de limites actives
1 : uniquement les limites dans le repère machine
2 : uniquement les limites dans le repère utilisateur
3 : les limites dans le repère machine et utilisateur
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 56 / 65
4.5.14 CFG#SAVED?
Commande &2 Q20=52 puis Q80 lorsque Q20=0
Type Demande d’information
Description Demande si les paramètres de configuration ont été sauvegardés
Arguments aucun
Réponse Paramètre Q80
0 : configuration non enregistrée
1 : configuration enregistrée
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 57 / 65
4.5.15 CFG#SPEED?
Commande &2 Q20=35 puis Q80,6,1 lorsque Q20=0
Type Demande d’information
Description Demande la configuration de la vitesse de mouvement
Arguments aucun
Réponse vt : vitesse en translation / paramètre Q80
vr : vitesse en rotation / paramètre Q81
vt_min : valeur minimale pour la vitesse en translation / paramètre Q82
vr_min : valeur minimale pour la vitesse en rotation / paramètre Q83
vt_max : valeur maximale pour la vitesse en translation / paramètre Q84
vr_max : valeur maximale pour la vitesse en rotation / paramètre Q85
Les arguments sont exprimés avec les unités suivantes :
vitesse en translation, unité = mm par seconde
vitesse en rotation, unité = deg par seconde
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 58 / 65
4.5.16 CFG#STALLCURRENT?
Commande &2 Q20=36 puis Q80 lorsque Q20=0
Type Demande d’information
Description Demande la configuration pour le courant de maintien
(s’applique uniquement pour des moteurs pas à pas)
Arguments aucun
Réponse Stallcurrent : paramètre Q80
Courant de maintien lorsque le moteur est à l’arrêt exprimé en pourcentage du courant nominal du moteur.
La valeur retournée est comprise entre 0 et 100 %
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 59 / 65
4.5.17 CFG#BACKLASH?
Commande &2 Q20=37 puis Q80,2,1 lorsque Q20=0
Type Demande d’information
Description Demande les paramètres pour le mouvement de compensation de backlash.
Le mouvement de compensation de backlash définit par les paramètres Axis et Value permet de définir une stratégie (dans le volume de travail) pour atteindre les consignes de positionnement avec toujours le même mouvement d’approche.
Arguments aucun
Réponse Axis : paramètre Q80
0 : mouvement de compensation de backlash désactivé
1 : Tx
2 : Ty
3 : Tz
4 : Rx
5 : Ry
6 : Rz
Value : paramètre Q81
Unité : mm si Axis = 1, 2 ou 3
Unité : deg si Axis = 4, 5 ou 6
La valeur retournée est comprise entre 0,5 et 0,5 mm ou deg.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 60 / 65
4.5.18 CFG#HEXAPARAM?
Commande &2 Q20=39 puis Q80,8,1 lorsque Q20=0
Type Demande d’information
Description Demande les paramètres pour la définition des composants de l’hexapode.
Cette commande permet de récupérer les éléments configurés comme composant l’hexapode, à savoir le plateau fixe, la plateforme mobile ainsi que les 6 actionneurs utilisés.
Pour chaque paramètre, la valeur retournée correspond aux deux derniers chiffres du numéro de série du composant.
Arguments aucun
Réponse Plateau fixe : Paramètre Q80
Plateforme mobile : Paramètre Q81
Actionneur en position 1 : Paramètre Q82
Actionneur en position 2 : Paramètre Q83
Actionneur en position 3 : Paramètre Q84
Actionneur en position 4 : Paramètre Q85
Actionneur en position 5 : Paramètre Q86
Actionneur en position 6 : Paramètre Q87
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 61 / 65
4.5.19 CFG#ACTUATORPARAM?
Commande &2 Q20=40 puis Q80,18,1 lorsque Q20=0
Type Demande d’information
Description Demande les paramètres des 6 actionneurs configurés sur la machine.
Cette commande permet de récupérer les longueurs deltaLhome, les paramètres de phasing ainsi que les longueurs de tige sorties de références
Arguments aucun
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 62 / 65
Réponse Longueur deltaLhome sur actionneur en position 1 : Paramètre Q80
Longueur deltaLhome sur actionneur en position 2 : Paramètre Q81
Longueur deltaLhome sur actionneur en position 3 : Paramètre Q82
Longueur deltaLhome sur actionneur en position 4 : Paramètre Q83
Longueur deltaLhome sur actionneur en position 5 : Paramètre Q84
Longueur deltaLhome sur actionneur en position 6 : Paramètre Q85
Paramètre de Phasing sur actionneur en position 1 : Paramètre Q86
Paramètre de Phasing sur actionneur en position 2 : Paramètre Q87
Paramètre de Phasing sur actionneur en position 3 : Paramètre Q88
Paramètre de Phasing sur actionneur en position 4 : Paramètre Q89
Paramètre de Phasing sur actionneur en position 5 : Paramètre Q90
Paramètre de Phasing sur actionneur en position 6 : Paramètre Q91
Longueur de la tige sortie en position de référence sur actionneur en position 1 : Paramètre Q92
Longueur de la tige sortie en position de référence sur actionneur en position 2 : Paramètre Q93
Longueur de la tige sortie en position de référence sur actionneur en position 3 : Paramètre Q94
Longueur de la tige sortie en position de référence sur actionneur en position 4 : Paramètre Q95
Longueur de la tige sortie en position de référence sur actionneur en position 5 : Paramètre Q96
Longueur de la tige sortie en position de référence sur actionneur en position 6 : Paramètre Q97
a m b
Lvisé
DeltaLhome = aLongueur tige sortie de référence = m
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 63 / 65
ANNEXE 1 CONFIGURATION ADRESSE IP
Brancher le câble USB et Ethernet qui relient le contrôleur d’axes de l’hexapode au PC de commande. Puis démarrer le rack de contrôle.
La communication USB est nécessaire à la première installation pour paramétrer l’adresse IP du rack de contrôle. Par la suite, le câble USB n’est plus nécessaire. Lancez le programme « IP address » qui se trouve dans le dossier « Symetrie\Configuration » du menu démarrer. L’exécution du programme peut durer quelques minutes. Définir l’adresse IP que vous souhaiter affecter au rack de contrôle, comme le montre la figure ci-dessous.
Figure 12 : Utilitaire «Ethernet Configuration »
Introduire une clé à Allen dans l’orifice « IP » situé sur la face arrière du rack de contrôle pour autoriser la modification de l’adresse IP puis appuyer sur le bouton « Store IP » de l’utilitaire de configuration. Après cette opération, la nouvelle adresse IP est effective. Vous pouvez retirer la clé à Allen.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 64 / 65
ANNEXE 2 TURBO PMAC ETHERNET PROTOCOL
Communications protocol with Turbo PMAC controller is fully supported under Microsoft Windows operating systems through the PCOMM32PRO driver library.
Turbo PMAC Ethernet communications ports talk using the UDP or TCP protocol of the TCP/IP suite of protocols on port 1025. Therefore, the programmer should open either a datagram socket (UDP) or a stream socket (TCP) on port 1025 the PMACPORT.
This section explains how comparable Ethernet communications drivers can be written for other operating systems. This section is intended for application programmers who have a fundamental understanding of Berkeley sockets used in the TCP/IP protocol suite. Before any attempt to read or understand the contents of this manual review basic sockets and understand them before proceeding. The fundamental socket functions that must be understood are recv, send, and socket.
The examples in this manual are for demonstration purposes only and are to there to convey the concepts of how to communicate with the Turbo PMAC. Therefore, the examples do not include error checking and timeouts. Delta Tau’s actual production code does, however, and application programmers are strongly encouraged to include error checking and timeouts in their code to prevent hang-ups and unresponsive behavior.
Command Packets. All commands are sent over the socket in the form of the following structure:
/ Ethernet command structure
typedef struct tagEthernetCmd
{
BYTE RequestType;
BYTE Request;
WORD wValue;
WORD wIndex;
WORD wLength;
BYTE bData[1492];
} ETHERNETCMD,*PETHERNETCMD;
The following is a description of the fields in the ETHERNETCMD structure.
RequestType is used in certain commands to indicate whether the request is an input with respect to the PC or an output command with respect to the PC. Delta Tau makes the following defines: VR_UPLOAD = 0xC0 for a command sent to host and VR_DOWNLOAD = 0x40 for a command sent to the device.
Interface de programmation (API)
Rack de contrôle hexapode
Version :
Date :
C
25/01/2016
Référence document : 13067_001_MAN_C_Software API.doc Page 65 / 65
Request indicates what type of command you are requesting from the Turbo PMAC Ethernet connection0. Below is a list of defines for the currently supported command set.
/ Ethernet command structure
typedef struct tagEthernetCmd
{
BYTE RequestType;
BYTE Request;
WORD wValue;
WORD wIndex;
WORD wLength;
BYTE bData[1492];
} ETHERNETCMD,*PETHERNETCMD;
wValue is request specific, and its use is indicated in under the description of each command.
wIndex is request specific, and its use is indicated in under the description of each command.
wLength indicates the length of the bData field below.
bData is the meaningful data that is sent to the PMAC.
Every command that is sent to the Turbo PMAC through an Ethernet port begins using the ETHERNETCMD packet structure and is initiated with a PC send command. Every command then must issue a recv command to either receive an acknowledgement character back via the recv command or receive meaningful data.