interface de programmation (api) · référence document : 13067_001_man_c_software api.doc page 2...

65
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

Upload: others

Post on 21-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interface de programmation (API) · 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

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

Page 2: Interface de programmation (API) · 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

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

Page 3: Interface de programmation (API) · 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

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

Page 4: Interface de programmation (API) · 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

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

Page 5: Interface de programmation (API) · 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

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.

Page 6: Interface de programmation (API) · 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

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

Page 7: Interface de programmation (API) · 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

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

Page 8: Interface de programmation (API) · 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

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.

Page 9: Interface de programmation (API) · 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

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.

Page 10: Interface de programmation (API) · 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

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

Page 11: Interface de programmation (API) · 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

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

Page 12: Interface de programmation (API) · 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

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.

Page 13: Interface de programmation (API) · 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

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).

Page 14: Interface de programmation (API) · 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

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.

Page 15: Interface de programmation (API) · 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

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.

Page 16: Interface de programmation (API) · 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

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.

Page 17: Interface de programmation (API) · 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

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.

Page 18: Interface de programmation (API) · 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

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

Page 19: Interface de programmation (API) · 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

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

Page 20: Interface de programmation (API) · 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

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

Page 21: Interface de programmation (API) · 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

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.

Page 22: Interface de programmation (API) · 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

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

Page 23: Interface de programmation (API) · 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

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 :

Page 24: Interface de programmation (API) · 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

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)

Page 25: Interface de programmation (API) · 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

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

Page 26: Interface de programmation (API) · 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

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

Page 27: Interface de programmation (API) · 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

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

Page 28: Interface de programmation (API) · 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

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

Page 29: Interface de programmation (API) · 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

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

Page 30: Interface de programmation (API) · 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

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).

Page 31: Interface de programmation (API) · 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

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

Page 32: Interface de programmation (API) · 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

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

Page 33: Interface de programmation (API) · 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

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

Page 34: Interface de programmation (API) · 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

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

Page 35: Interface de programmation (API) · 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

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

Page 36: Interface de programmation (API) · 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

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).

Page 37: Interface de programmation (API) · 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

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

Page 38: Interface de programmation (API) · 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

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).

Page 39: Interface de programmation (API) · 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

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

Page 40: Interface de programmation (API) · 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

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

Page 41: Interface de programmation (API) · 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

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

Page 42: Interface de programmation (API) · 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

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

Page 43: Interface de programmation (API) · 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

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)

Page 44: Interface de programmation (API) · 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

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.

Page 45: Interface de programmation (API) · 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

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

Page 46: Interface de programmation (API) · 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

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.

Page 47: Interface de programmation (API) · 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

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

Page 48: Interface de programmation (API) · 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

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.

Page 49: Interface de programmation (API) · 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

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

Page 50: Interface de programmation (API) · 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

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).

Page 51: Interface de programmation (API) · 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

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.

Page 52: Interface de programmation (API) · 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

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.

Page 53: Interface de programmation (API) · 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

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).

Page 54: Interface de programmation (API) · 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

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 ».

Page 55: Interface de programmation (API) · 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

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

Page 56: Interface de programmation (API) · 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

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

Page 57: Interface de programmation (API) · 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

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

Page 58: Interface de programmation (API) · 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

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 %

Page 59: Interface de programmation (API) · 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

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.

Page 60: Interface de programmation (API) · 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

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

Page 61: Interface de programmation (API) · 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

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

Page 62: Interface de programmation (API) · 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

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

Page 63: Interface de programmation (API) · 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

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.

Page 64: Interface de programmation (API) · 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

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.

Page 65: Interface de programmation (API) · 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

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.