10 de octubre de 2010

Programación de un Sinamics S120 en un PLC S7-300 (parte 1ª)

En esta entrada hablé de cómo configurar un Sinamics S120 controlado por un PLC S7-300. Como bien me apuntan en un comentario, falta hablar de cómo hacer la programación en el S7-300, así que voy a ello.

Lo primero es ir a la página de Siemens y descargar el Toolbox SINAMICS S120, que es un fichero en formato zip que incluye un proyecto de Step7 con un interface programado para Sinamics S120; también incluye documentación (en inglés y alemán).

La lectura de la documentación es obligada, porque dependiendo de como queramos manejar nuestro servomotor debemos seguir unos pasos u otros. En esta entrada voy a describir como he hecho la programación para manejar un eje en posicionamiento absoluto. Básicamente, lo que voy a hacer desde el PLC es:
  • puesta en condiciones de funcionamiento
  • referenciado (homing)
  • posicionado a una velocidad dada

Abrimos el proyecto del Toolbox y seleccionamos el FB283, el DB283 y los UDT 3000, 3001, 3002 y 3010, y los copiamos en nuestro proyecto.


Ahora crearemos en nuestro proyecto un DB que estará compuesto por los UDT anteriores.


El UDT3000 "UDT_Basis", con los datos básicos, el UDT3010 "UDT_TVB+MDI_TLG110" con los datos para hacer un posicionado a través de MDI (Manual Data Input) ó bloques de desplazamiento (traversing blocks) utilizando el telegrama 110, el UDT3001 "UDT_64TraversingBlocks" con los datos para hasta 64 bloques de desplazamiento y el UDT3002 "UDT_FaultBuffer" para controlar los posibles fallos.

Este bloque de datos será donde leeremos y escribiremos para manejar el eje. Si vemos su contenido apreciaremos que tanto las variables como los comentarios están en perfecto alemán, en mi caso tuve que echar de mano de un traductor para localizar las variables que me interesaban.


Ya tenemos los mimbres para hacer nuestra programación. El FB283 debe llamarse en cada ciclo de autómata, y debe haber una llamada, con su correspondiente DB asociado, por cada eje que necesitemos controlar; en mi caso tengo uno solamente. La llamada puede ser algo como esto:


Los parámetros que se le pasa son:

NR_ACHS_DB - Número del bloque de datos que hemos creado para el eje con los UDT, en mi caso el 70.

LADDR - Dirección de entrada / salida que hemos asignado al Sinamics en el hardware.


ADVERTENCIA: Las direcciones de entrada / salida que tengamos configuradas en el hardware deben ser idénticas. Si usamos una configuración multieje, puede que automáticamente se asignen diferentes direcciones para la entrada y salida de datos, con lo que deberemos modificarlas para que coincidan en cada eje (esto sucede ya que las áreas de entrada y salida tienen diferentes tamaños en el telegrama 110).

LADDR_DIAG - Dirección de diagnóstico asignada en el hardware.


WR_PZD - Puntero al área de escritura al Sinamics en el DB del eje, con un tamaño de 24 bytes ya que estamos usando el telegrama 110. Para ver la dirección exacta abrir el DB del eje y buscar la primera variable que empiece por "pos.WR_PZD_", su dirección es la que deberemos introducir aquí.

RD_PZD - Puntero al área de lectura del Sinamics en el DB del eje, con un tamaño de 14 bytes (telegrama 110). Para saber la dirección exacta buscaremos la primera variable que empiece por "pos.RD_PZD_".

CONSIST - Poniendo esta variable a True la comunicación Profibus se realizará mediante los SFC 14/15.

RESTART - Para realizar una reinicialización de la configuración.

AXIS_NO - Número de eje que vamos a controlar (se numeran empezando a contar en el dos).

Llegados a este punto, ya tenemos la comunicación con el Sinamics lista, y solo deberemos leer y escribir en el DB del eje para controlarlo, operaciones que detallaré en una siguiente entrada.

6 comentarios:

  1. como hago en el caso que la comunicación sea con una cp342-5. gracias.

    ResponderEliminar
  2. que tal, te agradesco la informacion que publicaste me esta srivioendo mucho en un proyecto que estoy realizando, solo que me surgio una duda, yo estoy utilizando un drive doble, la diereccion de entrada y la direccion de diagnostico debe de ser la misma para los dos motores??

    ResponderEliminar
    Respuestas
    1. Hola Isaac, no sabría decirte. Lamentablemente no he vuelto a trabajar con Sinamics y no lo tengo fresco. Prueba a preguntar en http://www.infoplc.net/foro/ o http://automatas.org/foro/

      Un saludo y gracias por en interés.

      Eliminar
    2. Que tal nuevamente te agradezco la ayuda, afortunadamente ya encontré la solución del detalle que te preguntaba, al momento de agregar un nuevo axionamiento en el Starter viene la opción para agregarlo ya sea a un nuevo Drive o a uno de los drives que ya tienes instaldos previamente.

      Eliminar
  3. saludos camarada soy aficionado ala automatizacion, tendras de casualidad el servipack 3 de wincc flexible 2008,
    me lo puedes pasar aqui en mexico es un poco mas complicado conseguirlo.

    ResponderEliminar

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