10 de septiembre de 2009

Probando un encóder incremental Pepperl-Fuchs TRD-J con un PLC Siemens 313C-2DP

Tengo en mi mesa un PLC Siemens 313C-2DP para hacer pruebas (el mismo que usé en la entrada del servomotor de Festo). Este autómata viene preparado para la conexión de entradas de contaje rápido, ideales para leer un encóder incremental como el Peperl-Fuchs TRD-J 1000-RZ (características en PDF aquí, no lo he encontrado en la web de Pepperl-Fuchs). Estas notas describen el proceso de conexionado, configuración y programación para comprobar su funcionamiento.

El encóder sobre mi mesa tiene este aspecto (cutre-foto con mi móvil):


La frecuencia máxima que soportan las entradas de contaje rápido de este PLC son 30 kHz. La resolución del encóder son 1000 pulsos/vuelta. Por tanto tenemos una velocidad de giro máximo de 30 vueltas/segundo ó 1800 rpm. Teniendo en cuenta que lo voy a mover con la mano es más que suficiente.

Vamos con el cableado, primero conectamos las alimentaciones de 24 VDC necesarias; en la tarjeta integrada de entradas / salidas de la CPU 313C-2 DP:

• 24 V en X1, pines 1 y 21.
• Masa en X1, pines 20 y 30.

Conectamos el encóder a la fuente de alimentación de 24 VDC:

• Cable rojo => positivo.
• Cable negro => negativo.

Voy a usar el canal cero, en la documentación leo que el conexionado debe ser el siguiente:

• DI+0.0 Canal 0: pista A/impulso.
• DI+0.1 Canal 0: Pista B/sentido.
• DI+0.2 Canal 0: Puerta hardware.

Las señales del encóder están dispuestas de la siguiente manera:

• Señal A: Cable verde
• Señal B: Cable blanco
• Señal Z: Cable amarillo

Las señales A y B están desfasadas 90º y permiten determinar la cantidad de giro que se realiza (nº de pulsos) y el sentido de dicho giro (si debe sumar los pulsos o restarlos). La señal Z proporciona una señal para fijar la posición 'cero' del encóder.

Necesitarás hacer uso de la señal Z si requieres precisión, por ejemplo en un eje de posicionado con un final de carrera que te indique la referencia 'cero', la secuencia podría ser esta:

• Se avanza hacia el fin de carrera de referenciado.
• Cuando ganas la señal de referenciado, retrocedes despacito hasta que la pierdes.
• Continuas el movimiento hasta que obtienes la señal Z.
• En ese momento lees el valor del encóder y le asignas la posición 'cero'.

En mis pruebas voy a prescindir de la señal Z, así que conecto únicamente el cable verde (señal A) a la primera entrada digital del canal cero y el cable blanco (señal B) a la segunda entrada digital. La tercera entrada digital (puerta hardware) sirve para interrumpir o cancelar el contaje, en mi caso no la necesito.

Hasta aquí el cableado, vamos ahora a la configuración hardware de nuestro proyecto de Step7.


Hacemos doble clic sobre 'Contaje' y aparecerán sus propiedades.


Vamos a la pestaña de 'Direcciones' y asignamos las direcciones de entradas y salidas que queramos, en mi caso la 256 (100 en hexadecimal).


Debemos especificar el modo de contaje, en mi caso es 'Contaje sin fin' que, según la documentación de Siemens, es el adecuado para leer el recorrido con un encóder incremental.


Nos aparecerá la pestaña de 'Contaje', no tocamos nada y aceptamos.


Guardamos y compilamos, transferimos la configuración y ya estamos listos para hacer la programación.

Antes de empezar a programar, y tal como nos advierte el manual de Funciones Tecnológicas, debemos tener en cuenta qué sucede si rebasamos los límites del contaje de pulsos:

Si el contador alcanza el límite superior durante el contaje hacia delante y se recibe un nuevo impulso de contaje en sentido positivo, el contador saltará hasta el límite inferior de contaje y seguirá contando a partir de ese punto.
• Si el contador alcanza el límite superior durante el contaje hacia atrás y se recibe un nuevo impulso negativo de contaje, el contador saltará hasta el límite superior de contaje y seguirá contando a partir de ese punto.
• Los límites de contaje están ajustados permanentemente en el rango de contaje máximo.

Debemos valorar si en nuestra aplicación esto supone un problema, en mi caso está claro que no.

Para utilizar el contador, Siemens nos da el SFB COUNT (SFB 47), que está perfectamente documentado en el manual de Funciones Tecnológicas. Para probar, lo más rápido es bajarse este proyecto de la página de Siemens y copiar todos los elementos del programa sobre nuestro proyecto.


Con esto ya sería suficiente. En la llamada al FB1 (que llama internamente al SFB47) sólo debemos ajustar la dirección hardware que le hayamos configurado (256, 100 en hexadecimal), el número de canal (cero) y poner a uno la señal 'SW_gate' (cada vez que hay un flanco positivo en esta señal el valor del contador se pone a cero, interesante si necesitamos referenciar). Moviendo el encóder podemos ver como en la variable 'MD100' tenemos el valor instantáneo del contador.


Y listo, con esto ya tengo suficiente para lo que necesito. Siguiendo la documentación no ha habido la más mínima complicación.

Como siempre, cualquier crítica, corrección o sugerencia en los comentarios o en mi correo notasdeautomatizacion@gmail.com.

6 comentarios:

  1. Buen aporte, Gracias.
    Carlos
    carlosortizcastro@gmail.com

    ResponderEliminar
  2. Excelente Aporte Amigo

    ResponderEliminar
  3. Muy buen aporte amigo muchas gracias

    ResponderEliminar
  4. Hola, una cuestión, para utilizar dos canales como contador, como se realiza la llamada al fb1, podemos consultar los dos simultáneamente?
    Saludos

    ResponderEliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.