Upload
josecheo
View
119
Download
8
Embed Size (px)
Citation preview
Trabajando con un accionamiento Indramat Ecodrive03 desde un
Siemens S7-300 (parte 1ª)
Tenía guardadas unas notas sobre la utilización de servomotores Indramat (ahora
Rexroth) MKD071 y reguladores DKC03 (Ecodrive03) con un S7-300 a través de
Profibus. He aprovechado para pasarlas a limpio y ponerlas aquí como referencia. Lo
que voy a desarrollar en esta entrada son los pasos para hacer la configuración del
accionamiento, su introducción en el hardware de un proyecto de Step7, así como unas
notas sobre su programación.
Para empezar necesitamos el software de configuración de Indramat, llamado DriveTop,
yo tengo la versión 16. No es necesaria licencia y se puede descargar de aquí. Es un
software un poco espartano, se puede poner en español pero la traducción no está muy
lograda, aún así cumple su función perfectamente.
Para hacer la configuración es preferible estar conectado al regulador, así detectará
automaticamente los componentes, aunque también se puede hacer offline con
limitaciones. La comunicación se hace mediante un cable serie que te puedes hacer, su
conexionado es el siguiente:
Voy a empezar por la configuración del regulador del servomotor. Para ello arrancamos
el DriveTop y le decimos que se conecte por RS232 al accionamiento. Si no tenemos el
accionamiento disponible seleccionamos 'Simulación Offline'.
Una vez conectados vemos la dirección Profibus que tiene asignado el accionamiento,
su denominación y una indicación de estado. Para iniciar la configuración vamos al
menú 'Puesta en servicio' y pusamos sobre 'Primera puesta en servicio'. Así se nos irán
presentando sucesivamente las distintas pantallas de configuración.
Se nos muestran las referencias del servomotor, el regulador y del firmware que
tenemos. Damos un nombre al eje y continuamos.
Seleccionamos 'Modo de funcionamiento libremente configurable' y continuamos.
Aquí es donde vamos a configurar lo que se va a transmitir a través de Profibus. En la
parte de arriba están todos los parámetros que se pueden transmitir y abajo vamos
añadiendo los que necesitemos, tanto para enviar (parte izquierda) como para recibir
(parte derecha). En mi caso voy a transmitir la palabra de estado (P4078), valor de
posición del servomotor (S0051), el número de diagnóstico (S0390) , valor nominal de
par (S0080) y el último bloque de posicionamiento (P4052). Existe un manual dedicado
a explicar cada uno de los parámetros. Consultamos el tamaño de cada uno y los
sumamos, dando un total de 12 bytes. En la recepción añado la palabra de mando
(P4077), el límite de par (S0092), dirección para contenedor de datos A (S0368), índice
lista contenedor de datos A para MDT (S0362), contenedor de datos A para MDT
(S360) y la selección de bloque de posicionamiento (P4026). Repasamos sus tamaños y
tenemos 14 bytes. Continuamos.
[NOTA: Si estamos offline no se puede hacer la configuración Profibus, o por lo menos
yo no he sido capaz]
Ahora hay que seleccionar los parámetros que van a ir en el contenedor de datos MDT y
a los que nos referiremos indirectamente mediante índices. En mi caso aparecen los
parámetros P4056, S0346 y P4006, que tendrán los índices 0, 1 y 2 respectivamente; me
interesa el último que me servirá para cambiar la posición de los bloques de
desplazamiento. Si quisiera modificar desde programa la velocidad de desplazamiento
también debería incluir el parámetro P4007 pero aquí no me hace falta.
En la 'lista de configuración contenedor de datos AT' incluyo el parámetro S0144, que
es la palabra de estado de señal. Continuamos.
Ahora seleccionaremos el modo de funcionamiento. Sólo voy a usar el principal
configurado como 'Bloques de posicionamiento, sin retardo, enc. 1'. Continuamos y
ahora hay que introducir las características mecánicas de nuestro eje, en mi caso quedan
tal que así:
Ahora llegamos a la configuración de los bloques de posicionamiento; voy a usar los
tres primeros. El cero lo usaré para posicionar y le marco el modo 'Bloque de
posicionamiento absoluto' y 'Sin conmutación de bloque'. La posición la modificaré
desde programa y voy a dejar fijos el resto de parámetros. Los bloques 1 y 2 los usaré
para mover el servomotor en un sentido o en el contrario (como si fuese un 'jog'), para
ello selecciono el modo 'Desplazamiento en dirección positiva' para el bloque 1 y
'Desplazamiento en sentido positivo' para el bloque 2 (sí, la traducción despista un
poco). Dejo los parámetros de velocidad, aceleración, etc., ajustados.
Los modos secundarios no los voy a usar, así que prescindo de configurarlos.
En las siguientes pantallas se configurará la reacción a error, la parada de emergencia,
límites del accionamiento, parámetros del circuito de regulación, el modo de
referenciado (homing), y los mensajes de estado.
A continuación podemos seleccionar los bits que configurarán la palabra de estado, los
que vienen por defecto serán suficientes.
Queda una serie de pantallas de configuración, pero para mí no tiene utilidad
modificarlas, así que las dejo tal cual están.
Finalizamos la configuración, siendo conveniente guardarla en un fichero.
Y listo, ya tenemos el accionamiento configurado. Ahora podemos acceder a la pantalla
de estado del accionamiento, donde se nos dará información instantánea sobre su
funcionamiento.
Trabajando con un accionamiento Indramat Ecodrive03 desde un
Siemens S7-300 (parte 2ª)
Primera parte aquí.
Configurado el accionamiento, lo debemos añadir a la red Profibus en el hardware del
Step7. Para ello debemos tener los ficheros GSD correspondientes al accionamiento
DKC03 instalados.
Buscamos en el árbol de componentes 'Otros aparatos de campo' => 'Accionamientos'
=> 'DKC03.3' y lo arrastramos sobre la red Profibus. Le asignamos la dirección que le
corresponda y ahora hay que indicarle el tamaño de los datos a transmitir. Para ello
recordamos lo que hemos configurado con el DriveTop en la trama Profibus y añadimos
en el slot de entradas '6 words inputs' (12 bytes) y en el slot de salidas '7 words outputs'
(14 bytes). Ambos a partir de la dirección 256 (100 en hexadecimal). Guardamos y
compilamos y cerramos el hardware.
La comunicación desde el S7-300 se hará a través de los SFCs 14 y 15 que sirven para,
respectivamente, leer y escribir datos de un esclavo DP en las direcciones que le
programemos, tal y como se ve en la siguiente captura:
Los valores que recibo los he mapeado en 12 bytes a partir de dirección M150.0, y los
valores a transmitir en 14 bytes a partir de la dirección M162.0. Así tengo acceso a las
funciones del accionamiento que necesito, las puedes ver en las siguientes capturas:
Ahora ya tengo todo configurado y el accionamiento accesible, sólo queda hacer la
programación. En función de mi mapeado voy a hacer una breve descripción de los bits,
palabras y dobles palabras que uso para manejarlo.
Lo primero es activar el servomotor, que según la configuración que he hecho se hace
activando el bit M162.7 [SERVOMOTOR: DRIVE ON].
Con el bit M163.5 [SERVOMOTOR: ERROR DELETE] borraremos un posible estado
de error en el servomotor.
En mi caso sólo voy a usar tres bloques de desplazamiento, así que con controlar los dos
primeros bits de selección de bloque (M175.0 [SERVOMOTOR: SELECCIÓN
BLOQUE BIT 0] y M175.1 [SERVOMOTOR: SELECCIÓN BLOQUE BIT 1] tengo
suficiente. Poniendo los dos a cero selecciono el bloque cero, poniendo el primero a uno
selecciono el bloque uno y poniendo el segundo a uno selecciono el bloque dos.
En la palabra MW164 [SERVOMOTOR: LÍMITE DE PAR] especifico el par máximo
que hará el servomotor. Se indica en porcentaje en tanto por mil referenciado al
nominal, ej: si escribo un 800 será un 80% del par nominal del servomotor.
Los bits M162.0 [SERVOMOTOR: MODO DE OPERACIÓN (BIT 0)] y M162.1
[SERVOMOTOR: MODO DE OPERACIÓN (BIT 1)] sirven para seleccionar el modo
de operación del servomotor entre los cuatro disponibles; como sólo voy a utilizar el
principal los dejaré ambos a cero.
Para realizar el referenciado (homing) usaremos el bit M162.2 [SERVOMOTOR:
DRIVE TO ZERO POINT], que dejaremos activado durante todo el proceso.
Para iniciar un bloque de desplazamiento deberemos tener activado el bit M162.5
[SERVOMOTOR: START] y luego activar el bit M163.0 [SERVOMOTOR: INICIAR
MOVIMIENTO]. El movimiento se iniciará con un flanco positivo de esta última señal
y se mantendrá mientras la mantengamos a uno o se complete.
Para modificar la posición de un bloque de desplazamiento escribiremos el índice que
ocupa el parámetro de posición P4006, que en mi caso será un 2, en la palabra MW166
[SERVOMOTOR: ÍNDICE DEL PARÁMETRO A MODIFICAR]; si hemos añadido
además la velocidad en la tabla del contenedor de datos MDT con el parámetro P4007 y
queremos modificarlo, el índice será un 3.
Además debemos especificar para qué bloque queremos hacer la modificación, que se
indica en la palabra MW168 [SERVOMOTOR: NÚM. DE BLOQUE A MODIFICAR].
Finalmente el valor que tomará el parámetro anteriormente seleccionado se lo diremos
en la palabra doble MD170 [SERVOMOTOR: VALOR PARÁMETRO A
MODIFICAR].
En la palabra doble MD152 [SERVOMOTOR: POSICIÓN] tendremos el valor de
posición instantáneo del servomotor.
Y para terminar, en la palabra MW156 [DIAGNÓSTICO SERVOMOTOR], en caso de
error del servomotor, nos indicará un código en hexadecimal, que viendo la tabla
diagnóstico del manual, nos servirá para saber qué le pasa. Es el mismo código que
podemos ver en la pantalla de estado del accionamiento, en el DriveTop.
Por supuesto, todo esto (y mucho más) está en los manuales, aunque en mi opinión son
un poco coñazo.
Finalizando, con todo lo visto en estas dos entradas he configurado y ejecutado
posicionamientos en varias máquinas, y el funcionamiento de estos servomotores ha
sido óptimo (aunque en ocasiones hubo que tocar los parámetros de regulación).