Homing Coupole

Programmation Beckhoff

 

 


 

Le Homing permet de trouver le zéro coupole, c'est à dire initialiser la coupole à zéro degré plein sud.

Le Homing nécessite 3 type d'actions dans TwinCAT

  1. Programmation du pou: Dome->FB_SM_Homing
  2. Configuration du détecteur de proximité sur le AX5206
  3. Configuration des Axes
  4. Configuration de la partie NC

 


Configuration moteur

 

La position est donnee par le codeur du moteur c'est a dire 1'048'576 [inc/tour]

Definition du Feed Constant (nombre de degres par increment codeur)

Le labo geneve utilise un reducteur attaquant un plateau tournant. 1 tour de moteur donne une rotation de 1[deg].

donc Feed Constant:  Numerateur:= 1 Denominateur:=1048576 (1[deg] par 1048576[inc])

A la Silla nous avons:

// Params and velocity, we have to take in account this parameters
// Nb of tooth for the dome						: 1248
// Nb of tooth for the gear						: 12
// Ration reducer							: 40 
// Max angular velocity for the dome rotation	: 3[d/s]
//
// Velocity axe motor max (TBC: depend of the ration of the reducer):
//
// NC velocity ([degree_coupole/s)	(basic spec)		 =    3 [d/s] 
// 1248[tooth/t_dome]/12[tooth/t_reduc]				 =  104 [t_reduc/t_dome]
// 104 [t_reduc/t_dome]*40[t_moteur/t_reduc]			 = 4160 [t_motor/t_dome]
// velocity dome = (3[d/s] * 60 [s/min]]) / 360[d/t_dome]	 =    0.5 [t_dome/min]
// velocity max moteur = 4160 [t_motor/t_dome] * 0.5 [t_dome/min]= 2080 [t_motor/min]
// Feed constant for [degree/MotorRotation]) = 360[d/t_dome] / 4160 [t_motor/t_dome] = 0.086538461538 [d/t_motor]
//

donc Feed Constant: Numerateur:= 0.08653846153 Denominateur:=1048576 (0.08653846153[deg] par 1048576[inc])

 

Une fois ces valeur programmee (Axes -> <axe_name> -> enc -> Parameter) le moteur se programme en [degre] ou [degre/sec]


Programmation de FB_SM_Homing

 

Comme dans chaque FB lié à la rotation du dome, le premiere étape est d'executer MC_Power sur chaque axe (Enable du Drive dans les 2 directions).

Si avant de commencer le mouvement le top zero est activé (on est dessus), la coupole est dégagée avec un MC_MoveVelocity jusqu'à que le top zéro ne soit plus détecté. La rampe de décéleration fait que la coupole est suffisamment éloignée pour executer le Homing.

Le homing se fait avec le FB MC_Home, qui initialise la position à la valeur la plus élevée (9'999'999'999) puis démarre le moteur jusqu'à la detection du top zéro. Il n'y a pas d'arrêt prévu type timeout (pour l'instant). Ainsi la coupole peut tourner indéfiniment si le détecteur est en panne.

Lorsque le doigt installé sur la partie tournante passe  sur le détecteur, le codeur est initialisé à 29[d] qui est l'offset de la position du top zéro par rapport au sud.

A remarquer que ce setting du codeur est instantané et donc pas lié au cycle de la PLC, indépendant également de la vitesse.

Homing sans Reference Cam


Contrairement à un system linéaire, nous n'avons pas de Reference Cam, dans un système linéaire, la partie mobile va en direction d'une Reference Cam et au moment de la detection change de sens jusqu'à la detection de la Sync Pulse (voir Doc). Pour la coupole, nous devons simuler la Reference Cam et de cette manière le FB MC_Homing part directement vers le détecteur de proximité pour détecter la Sync Pulse. C'est à dire au point No 5 (selon doc).

Le code de la simulation mis en place avant l'appel a MC_Homing est le suivant:

axis_ref_master.PlcToNc.ControlDWord.5 := TRUE;

A la fin de Dome->FB_SM_Homing , la simulation est annulée:

axis_ref_master.PlcToNc.ControlDWord.5 := FALSE;

Configuration du détecteur de proximité sur le AX5206

 

Le Drive AX5206 possède le connecteur X06 pour les I/O avec 2 contacts 0 et 24[V].

L'entree digitale 1 avec le 0 et 24[v]  sont utilisés pour connecter le détecteur de proximité du zéro coupole. Le modèle est Baumer IFRM 18P17A3/S14L J452, la connectique est la suivante:

Pin NameCouleurUsage
0 noir digital In 1
24 brun 24[V]
0V bleu GND

Le Drive est configuré ainsi, dans:

I/O->...->Drive->DriveManager->ChannelA->Configuration->ProcessData/OperationMode

Sélectionner le paramètre P-0-0801 (Digital inputs, state) dans la fenêtre Available parameters for Process Data et le déplacer dans la fenêtre Parameters for Process Data avec le bouton >> . Cette opération fait que le paramètre Digital inputs,state apparait dans

I/O->...->Drive->AT1->Digital inputs, state

Le code PLC utilise la variable FB_MAIN_Dome -> I_i_digitalInputRotationDome pour la detection du top zero qui est utilisé pour:

  • lors du homing: savoir si on est sur le top_zero en debut de homing
  • dans FB_PositionMonitoring pour la lecture du lag à chaque passage
  • dans la visu VisuRotation pour allumer le témoin top zéro

On mappe ce paramètre (Digital inputs, state) sur la variable I_i_digitalInputRotationDome

 


Configuration des axes

 

Le homing se configure dans:

MOTION->..->RotationMaster->Enc->Parameter->Homing

Settings:

Invert Direction for Calib Cam Search	= FALSE  (rem: unused, we do not have cam)
Invert Direction for Sync Impuls Search	= TRUE (depends of the direction)
Calibration Value			= 29 (rem used only for manual homing (F9)
					  29 [d] is the angle between te south (0[d]) 
					  and the position of the top zero. This
					  value is set in the FB MC_Homing (FB_SM_Homing)
Reference Mode				= "Hardware "Latch 1 (pos edge")

Configuration de la partie NC

 

!!! ATTENTION, SE METTRE EN MODE CONFIG !!!

Il faut Configurer NC pour que le Sync Pulse agisse sur le Drive AX5206 (Voir doc).

Résumé de la doc:

Dans:

I/O->...->Drive->DriveManager->ChannelA->Configuration->ProbeUnit

Les défauts sont corrects (utilisation de Digital Input 0, Mux 1, High active, Enable Probe 1 positive edge)

 

Probe Unit configuration

Probe unit (functionality)

Dans:

I/O->...->Drive->Startup

Il faut ajouter plusieurs paramètres avec le bouton New .... Remarque: pour sélectionner un paramètre il faut d'abord le choisir dans la liste puis lui attribuer une valeur avec Edit... . Attention au flag de transition (I->P, P->S, S->O). Les paramètres sont:

Param (IDN)TransitionDataRemarque
S-0-0303 P->S 95 01 0x195 (405) 0001 1001 0101
S-0-0307 P->S 99 01 0x199 (409) 0001 1001 1001
S-0-0169 P->S 01 00 0x1 (1)

bit 0 Probe 1 positive edge 

(1 = positive edge is active)

S-0-0170 S->O 03 00 0x3(3)

bit0 Cancel command (1=enable)

bit1 Set command (1=enable)

Attention à la transition

L'effet curieux est que l'on rentre (par exemple) "95 01" et dans la liste Startup apparait "01 95 (405)". Les bytes sont inversés!!!

Dans:

I/O->...->Drive->Process_Data

Selectionner AT1 ou AT2 (selon le canal) dans PDO List

Click droit dans le panneau PDO Content et sélectionner Insert ... Sélectionner le paramètre S-0-0130 puis OK, ce qui rajoute ce paramètre dans le Process Data qui doit apparaître dans (et correctement mappé (mais c'est ok, le système le fait)):

I/O->...->Drive->AT1   (ou AT2 si le canal B est utilise)