• Aucun résultat trouvé

1.3. Architecture mécanique

1.5.2. Architecture logicielle de contrôle

L’architecture logicielle de contrôle de Tidom est une architecture distribuée. Elle repose sur l’utilisation d’une plateforme matérielle constituée de plusieurs contrôleurs d’axes Whistle sur lesquels sont implémentés les réglages des paramètres de correction spécifiques à notre application. Ils réalisent les asservissements des axes et génèrent les lois de variation de vitesse à partir des consignes automates, selon deux types de pilotage complémentaires.

Deux modes de fonctionnement sont possibles avec les Whistles :

- Le mode PTP (Point To Point) : l’axe est mis en mouvement avec un trapèze en vitesse.

- Le mode PVT (Position Velocity Time) : le Whistle reçoit une consigne en position et en vitesse toutes les 10ms et permet à l’axe de suivre cette consigne.

Le protocole CANopen nous fournit des objets de communication standardisés que nous allons utiliser pour échanger consignes et retours d’informations entre le PLC et les contrôleurs. Les messages SDO (Service Data Objects) servent à la configuration des entrées du dictionnaire d'objets. Les messages PDO (Process Data Objects) ont pour fonction le transport des données.

Lors de la configuration des Whistles, l’automate envoie des messages SDO aux Whistles. Les messages SDO nécessitent toujours une réponse de la part des Whistles. Ces messages servent également à configurer les messages PDO. Les messages PDO sont ceux utilisés durant le mouvement car ils ne nécessitent pas de réponse de la part des Whistles ce qui les rend plus efficaces. En plus, la totalité du message est consacré à l’information. Les messages d’urgence et les erreurs sont transmis par des messages EMCY. Ces messages contiennent l'information sur les erreurs et sont émis par le Whistle dès qu'il y a une erreur.

Durant le mode PVT, l’automate envoie les consignes de position et de vitesse toutes les 10ms à chacun des Whistles. Le problème que l’on rencontre est que le bus CAN n’est pas un bus temps-réel. Il n’y a pas de garantie que les points que l’on envoie toutes les 10ms arrivent toutes les 10ms. Les consignes sont envoyées en groupe et sont reçues dans un buffer FIFO (First In First Out) qui est présent à l’entrée des Whistles. Elles sont ensuite resynchronisées sur l’horloge temps-réel du contrôleur. La période de la boucle de position du contrôleur étant plus petite que les 10ms d’échange sur le bus CAN, il faut interpoler les positions articulaires dans le contrôleur.

39 Le programme développé avec le logiciel B&R Automation Studio s’exécute toutes les 10ms. Ce programme repose sur une machine d’état du robot qui reprend celle des axes. Les axes de Tidom ont en effet leur propre machine d’état (Figure 1-27).

Figure 1-27. Machine d’état d’un axe

Nous allons maintenant expliciter chaque état de la machine d’état du robot.

Dans un premier temps, le système est dans l’état ‘’Init’’, les Whistles sont sous tension mais pas les moteurs.

Lorsque le ‘’Start’’ passe à 1, les paramètres de Tidom tels que les rapports de réduction ou les butées articulaires sont initialisés. Dans un second temps, le programme synchronise les Whistles entre eux avant de les configurer. Si aucune erreur n’est détectée, les moteurs sont mis sous tension et le système passe à l’état ‘’Standstill’’. Cet état est un état d’attente.

Lorsque le système est dans l’état ‘’Standstill’’, plusieurs possibilités s’offrent à l’utilisateur. Il doit cependant, avant d’exécuter un mouvement, faire une mise en référence des axes en passant par l’état ‘’Homing’’.

Le ‘’Homing’’ est la prise d’origine des axes. L’utilisateur spécifie la position angulaire des axes du robot. De cette façon, la commande connaît la configuration du robot. Une fois le ‘’Homing’’ effectué, le système revient dans l’état ‘’Standstill’’.

Start Init done BPhome Homing Standstill PTP done PTP position PVT trajectory done BPpvtTraj PVT standstill BPpvt Stop PTP velocity BPptpVel+ = 0 BPptpVel- = 0 BPptpVel+ = 1 BPptpVel- = 1 Read file LecTraj Done

40

L’opérateur a alors le choix entre le mode PTP (Point To Point) et le mode PVT (Position Velocity Time). Le mode PTP est le mode manuel, il sert à repositionner le robot dans une configuration donnée. Le mode PVT est utilisé pour exécuter des trajectoires.

Il existe deux modes de fonctionnement en modes PTP : le mode ‘’PTP position’’ et le mode ‘’PTP velocity’’. Le mode ‘’PTP position’’ consiste à déplacer l’axe jusqu’à un point objectif (vitesse + position) avec une loi de commande trapézoïdale en vitesse où les vitesses et les accélérations maximales sont imposées. Le mode ‘’PTP velocity’’ consiste à déplacer l’axe tant que la consigne de déplacement est active ou jusqu’à la butée logicielle toujours avec une loi de commande trapézoïdale en vitesse. On ne spécifie donc pas une position à atteindre. L’axe est en mouvement tant que l’opérateur appuie sur un bouton.

Le mode PVT est le mode normal d’utilisation du robot. Il sert à réaliser les trajectoires générées en amont par les algorithmes d’optimisation et lues lors de l’état ‘’Read file’’. Ce mode est un suivi de consigne cyclique avec donnée de la position et de la vitesse. L’état ‘’PVT Standstill’’ est l’état d’attente du mode PVT tandis que l’état ‘’PVT trajectory’’ est l’état dans lequel la trajectoire est exécutée sur le robot. Avant d’activer le mode PVT, il est nécessaire de connaître la trajectoire. Nous avons décidé d’écrire la trajectoire précalculée dans un fichier binaire que l’on met sur une clé USB pour pouvoir le lire sur l’automate. Le fichier binaire contient dans l’ordre : un premier nombre entier de 16 bits qui est le nombre de points de la trajectoire, puis un second nombre entier de 16 bits qui est le nombre d’axes. Les points qui suivent sont ceux de la trajectoire pour chaque axe. Les trajectoires sont données axe par axe. La commande a besoin d’avoir la position et la vitesse des axes à chaque instant. Pour chaque axe, la trajectoire se termine par un point d’arrêt avec une position de 1000 et une vitesse de 0. Ce point marque la fin de la trajectoire pour chaque axe.

Dans chaque état, le système vérifie cycliquement la présence d’une erreur ou d’un message d’erreur sur les nœuds du bus. En cas d’erreur, le système revient à l’état ‘’Standstill’’. L’opérateur doit alors corriger l’erreur et acquitter la correction.

Pour pouvoir utiliser le robot nous avons créé une Interface Homme Machine (IHM). La Figure 1-28 montre la première page de cette IHM qui permet de piloter tous les axes en mode manuel et de charger un fichier de trajectoires avant d’en lancer l’exécution. Une seconde page de l’IHM est dédiée à la gestion des erreurs et une troisième affiche les messages d’urgence. Ces deux pages ne seront pas présentées dans ce mémoire.

41 Figure 1-28. Interface homme-machine (première page)

Cette interface permet de piloter le robot. On retrouve un bouton ‘’START’’ pour configurer la commande et mettre les moteurs du robot sous tension. Un bouton ‘’LecTraj’’ lance la lecture de la trajectoire et un bouton ‘’HOMING’’ active la prise d’origine des axes. Cette dernière opération est nécessaire avant de mettre le robot en mouvement aussi bien en mode PTP qu’en mode PVT. La lecture de la trajectoire est bien entendu obligatoire avant de l’exécuter en mode PVT. Le bouton ‘’PVT’’ permet de lancer l’exécution de la trajectoire en mode PVT. Le bouton ‘’PVTstop’’ permet de sortir de ce mode. Le bouton ‘’RESET’’ sert à réinitialiser la machine d’état. Le bouton ‘’STOP’’ permet d’arrêter le mouvement du robot. L’interface renvoie l’état de chaque axe ainsi que le nombre d’erreurs et de messages d’urgence. Le bouton ‘’Place All’’ sert à positionner tous les axes en mode PTP en même temps. L’interface permet également de piloter chaque axe indépendamment les uns des autres en mode PTP, soit en imposant la position à atteindre (par exemple ‘’PTP1’’ pour l’axe 1), soit à l’aide d’un bouton poussoir qui met l’axe en mouvement dans un sens ou dans l’autre (par exemple ‘’PTP1V+’’ et ‘’PTP1V-’’ pour l’axe 1). En cas d’erreur ou de messages d’urgence, une autre page de l’interface a été conçue pour gérer ces problèmes.

42

Documents relatifs