setup y cero (definición de posición) de encoder absoluto

10
Setup y cero (definición de posición) de encoder absoluto de servos G5 mediante el controlador Sysmac

Upload: others

Post on 27-Jul-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Setup y cero (definición de posición) de encoder absoluto

Setup y cero (definición de posición) de

encoder absoluto de servos G5

mediante el controlador Sysmac

Page 2: Setup y cero (definición de posición) de encoder absoluto

0. INTRODUCCION

Al trabajar con servomotores de la serie G5 con encoder absoluto, la primera vez

que conectamos el sistema o bien cuando el cable del encoder se desconecta de la

batería, es necesario realizar un Setup del encoder absoluto, puesto que mientras

que no se realice el drive mostrará la Alarma 40.

Una vez realizado el Setup y mientras no se desconecte el cable del encoder de la

batería no será necesario volver a realizarlo, es decir mientras el cable de encoder se

mantenga conectado al cable de batería se puede quitar alimentación a la máquina

sin riesgo de perder la posición del eje.

Otro motivo para realizar el setup del encoder absoluto es hacer el cero del encoder,

los encoder absolutos conocen su posición absoluta desde su Z en una vuelta y por

otro lado disponen de un contador donde se almacenan las vueltas que llevan desde

que se hizo su setup, este contador se incrementa cuando las vueltas avanzan en

sentido positivo y se decrementa cuanto las vueltas son dadas en sentido negativo,

de esta forma el encoder puede proporcionar información detallada de la posición

en la que se encuentra después de varias vueltas, sumando a la posición que se

encuentran en la vuelta actual el valor correspondiente a las vueltas del contador

multiplicado por el número de pulsos por vuelta.

������ó� � ����������� ���������� � �º ����� ∗ �������1 �����������

Cuando realizamos un Setup del encoder Absoluto se inicializa el contador de

vueltas a 0, con lo cual el valor de la posición que nos dará el encoder en ese

momento será la posición respecto a su fase Z en la vuelta 0, en los encoder

Absoluto de la serie G5 la Z es física y no es posible reubicarla, con lo cual para

posicionar el cero del encoder en otra posición se aplica un Offset a la posición real,

este offset puede ser aplicado por el servo Drive y por el sistema de control.

1. SETUP DE ENCODER ABSOLUTO

Para realizar el setup y eliminar el error A.40 del driver, se puede usar Cx-Drive

usando el asistente disponible para ello, pero es necesario conectarse al Drive

Page 3: Setup y cero (definición de posición) de encoder absoluto

usando este software especifico, y no siempre es posible, ya que es necesario que el

receptor de la maquina disponga del software, y esté formado para esta tarea.

Otra solución más acertada para estos casos, es implementar dicha maniobra en el

programa del controlador de maquina Sysmac, para ello emplearemos la siguiente

secuencia.

Al activar la secuencia, se manda un comando de escritura a través de la red

Ethercat, que escribirá el código 6A646165 sobre el Objeto 4102.0 del drive (en este

ejemplo, el ServoDrive está configurado como nodo 2), quedando realizado el Setup

y a continuación se resetea el drive para limpiar el error.

Page 4: Setup y cero (definición de posición) de encoder absoluto

2. CERO (definición de posición) DEL ENCODER ABSOLUTO

Con el controlador Sysmac, es posible definir la posición de un eje con encoder ABS

utilizando la función de Homing (aplica un Offset al controlador Sysmac) o bien

usando el método explicado en esta guía, de cualquier forma una vez realizado el

cero, no será necesario volver a realizarlo aunque se quite alimentación a la

máquina, tan solo será necesario en caso que se desconecte la batería del encoder

ABS.

Cuando se usa el FB de Homing, el valor que se fijará en la posición del eje es

siempre el mismo, ya que es predefinido de antemano por el programador en la

sección de configuración del método de búsqueda de origen desde el proyecto de

Sysmac Studio.

Si es necesario definir distintos valores del encoder ABS (Ej: Mediante una HMI),

como no es posible cambiar los valores de configuración de búsqueda de origen en

ejecución de programa, será necesario realizar lo explicado en esta guía

La secuencia empleada para realizar el cero será la siguiente.

Page 5: Setup y cero (definición de posición) de encoder absoluto

Se definen los objetos a los que será necesario acceder, así como los valores que se

escribirán, quedando de la siguiente forma:

Object => Objeto donde será necesario escribir para el Setup del encoder ABS

Page 6: Setup y cero (definición de posición) de encoder absoluto

Object2 => Objeto donde está la posición del motor en una vuelta (con Offset)

Object3 => Objeto donde está configurado el Offset del ServoDrive

Object4 => Objeto donde será necesario escribir para guardar en EEPROM

Se escribe en el objeto correspondiente al Setup del encoder ABS el código que

realiza el Setup del encoder ABS, igual que en el apartado anterior.

Se resetea el ServoDrive

A continuación se lee el objeto correspondiente a la posición del motor en una

vuelta con el Offset del ServoDrive aplicado (si lo tiene), y el objeto correspondiente

al offset configurado en el ServoDrive, en caso de que lo tuviera.

Page 7: Setup y cero (definición de posición) de encoder absoluto

Se adaptan los tipo de dato de los valores leídos, estos datos vienen dados en

flancos y por tanto se convierten en unidades de sistema para poder trabajar con

ellos.

Para convertir los datos leídos (flancos) en unidades de sistema, basta con

multiplicar el dato por el número de unidades del sistema que hay en una vuelta del

motor y dividirlo por el número de flancos que hay en una vuelta de motor.

En el ejemplo, se usa un motor de 17 bit por tanto 2^17 = 131072 flancos por vuelta.

Como unidades de sistema se ha empleado el grado, por tanto una vuelta de motor

son 360 grado. Como puede verse, en lugar de emplear directamente el valor de

unidades de sistema para la conversión, se ha empleado el valor multiplicado por

100 es decir 36000, esto evita perder precisión en la conversión del tipo de datos, de

LREAL a INT.

Por último se calcula el Offset que pueda tener configurado el controlador Sysmac,

para ello basta con comparar la posición que muestra el controlador con la posición

leída del ServoDrive, teniendo en cuenta que el valor leído del ServoDriver ha sido

multiplicado por 100.

Page 8: Setup y cero (definición de posición) de encoder absoluto

En el siguiente bloque se calcula el nuevo Offset que habrá que escribir en el

ServoDrive para definir la nueva posición del eje con el valor que se deseé.

Procediendo igual que en el cálculo anterior, se convierten los tipos de datos,

además se calcula el factor para convertir unidades de sistema en flancos, que se

calcula a la inversa que en el caso anterior, flancos en una vuelta dividido de

unidades de sistema en una vuelta (se ha multiplicado por 100 por lo ya

comentado) .

Se calcula la posición en una única vuelta del motor ABS sin el Offset que le haya

podido aplicar el ServoDrive.

Por si al quitar el Offset nos encontramos en que tenemos un valor mayor al de una

vuelta (podría pasar si por ejemplo se había aplicado un offset negativo), se hace la

división del valor y nos quedamos con el resto, dándonos así el valor de la posición

en la vuelta 0.

Page 9: Setup y cero (definición de posición) de encoder absoluto

Una vez convertido el tipo de dato, tomamos el valor de la variable donde está

escrita la nueva posición que se quiere configurar, esa variable puede ser por

ejemplo pasada a través de una pantalla HMI para permitir una mayor flexibilidad

del sistema, y convertimos el valor en flancos, usando el factor de conversión

calculado anteriormente (k) y multiplicado por 100 (por lo ya comentado).

Para calcular el nuevo Offset que habrá que aplicar al ServoDrive, en primer lugar se

resta la posición actual en una única vuelta del motor ABS (vuelta 0) y el Offset

aplicado por el controlador Sysmac (si lo hubiera) para situarnos en la posición cero,

y se suma la nueva posición que se quiera consignar ya convertida a flancos.

Una vez convertido el dato, se envía al Objeto correspondiente al Offset del

ServoDrive.

Por último se escribe en el objeto que hace que los cambios sean fijados en la

EEPROM.

Para que los cambios tengan efecto, será necesario quitar tensión a la máquina.

Page 10: Setup y cero (definición de posición) de encoder absoluto

Versión Nota Tec.: v.3.2