Documentos de Académico
Documentos de Profesional
Documentos de Cultura
“Proyecto 3: Escalamiento y
Sintonización del Eje Rotatorio y
programación del Jog (MAJ) y
Movimiento (MAM).”
1
Índice
OBJETIVO............................................................................................................... 4
MATERIAL .............................................................................................................. 4
SOFTWARE ............................................................................................................ 4
MARCO TEORICO .................................................................................................. 4
Definición Servomotor. ......................................................................................... 4
Instrucción Impulsos de motion axis (MAJ) .......................................................... 5
Instrucción Mover Motion Axis (MAM).................................................................. 6
DESARROLLO ........................................................................................................ 8
A. Realizar el enlace punto a punto entre la computadora y el PAC ControlLogix
o CompactLogix de acuerdo con la topología. ..................................................... 8
B. Configurar el Driver de comunicación Ethernet /IP con el software RSLinx. . 12
C. Con el software Studio 5000 generar un nuevo proyecto, seleccionando el
controlador que se está utilizando. .................................................................... 14
D. Dar de alta las tarjetas o módulos de entradas y salidas analógicas y
digitales, movimiento, comunicación y especiales en función de cada tablero
asignado. ........................................................................................................... 19
E. Realizar las siguientes subrutinas en el proyecto RSLogix o Studio 5000: ... 30
F. En la memoria local del controlador “Program Tag”, crear los Tags de
acuerdo con el documento “Tags” para Control de Movimiento. ........................ 32
G. En la Subrutina Habilitación_EjeRotacional realizar el programa para habilitar
el eje rotacional dese la instrucción del mensaje. .............................................. 33
H. En la subrutina EjeRotacional_MAJ, realizar el programa desde el encendido
(MSO), movimiento Jog (MAJ), paro (MAS), pagado (MSF), shutdown (MASD),
reset del shutdown (MASR) y reset de falla (MAFR). Con la finalidad de
comprobar el funcionamiento del comando de movimiento del comando de
movimiento de Jog MAJ. .................................................................................... 52
I. En la subrutina EjeRotacional_MAM, realizar el programa desde el encendido
(MSO), movimiento Move (MAM), paro (MAS), pagado (MSF), shutdown
(MASD), reset del shutdown (MASR) y reset de falla (MAFR). Con la finalidad de
comprobar el funcionamiento del comando de movimiento para mover el eje
MAM................................................................................................................... 59
J. En la subrutina Secuencia_MAJ, realizar el programa desde el encendido
(MSO), movimiento Jog (MAJ), paro (MAS), apagado (MSF) shutdown (MASD),
reset del shutdown (MASR) y reset de falla (MAFR). Con la finalidad de realizar
el perfil de movimiento de velocidad, mediante la ejecución del comando de
2
movimiento Jog (MAJ), en donde se progaman “n” MAJ deacuerdo al perfil del
anexo 1. MAJ eje rotatorio. ................................................................................ 82
K. En la subrutina Secuencia_MAM, realizar el programa desde el encendido
(MSO), movimiento Move (MAM), paro (MAS), apagado (MSF), shutdown
(MASD), reset del shutdown (MASR) y reset de falla (MAFR). Con la finalidad de
realizar el perfil de movimiento de posición y velocidad mediante la ejecución del
comando de movimiento de move (MAM) en donde se programan “n” MAM de
acerudo al perfil del anexo 2. MAM eje rotatorio. ............................................. 119
L. Los resultados de cada subrutina documentarlos con las tendencias de
posición y velocidad del eje rotacional. ............................................................ 154
RESULTADOS .................................................................................................... 155
CONCLUSIONES................................................................................................ 157
BIBLIOGRAFIA ................................................................................................... 158
3
PROYECTO 3: ESCALAMIENTO Y SINTONIZACIÓN DEL EJE ROTATORIO Y
PROGRAMACIÓN DEL JOG (MAJ) Y MOVIMIENTO (MAM).”
OBJETIVO
Realizar el escalamiento y la sintonización de los lazos de control de los
Servodrives, así como la programación de los comandos MAJ y MAM para la
generación del perfil de movimiento del eje rotacional.
MATERIAL
• 1 PC.
• 1 PAC CompactLogix o ControlLogix.
• 1 módulo Servodrive Kinetix 350.
• 1 módulo de Servomecanismos lineal y rotacional.
• 1 switch Ethernet.
• 1 cable UTP.
SOFTWARE
• BOOTP/DHCP server
• RsLinx
• RsLogix 5000 o Estudio 5000
MARCO TEORICO
Definición Servomotor.
También denominado comúnmente como servo, son dispositivos de accionamiento
para el control de precisión de velocidad, par motor y posición. Constituyen un
mejor desempeño y precisión frente a accionamientos mediante convertidores de
frecuencia, ya que éstos no nos proporcionan control de posición y resultan poco
efectivos en bajas velocidades.
4
Instrucción Impulsos de motion axis (MAJ)
La instrucción MAJ es una instrucción de salida, se usa la instrucción MAJ para
iniciar un perfil de control de movimiento por impulsos para un eje.
Para interrumpir un impulso de eje, use la instrucción de impulsos de eje de
movimiento (MAJ) con una velocidad de cero o la instrucción de paro de eje de
movimiento (MAS).
Para usar la instrucción MAJ
• Se configura el eje como servoeje o como eje virtual.
• Se debe asegurar de que la tensión del eje tiene el servo activado si el eje
es un servoeje.
Se tiene los operandos que se muestra en la siguiente imagen.
5
Instrucción Mover Motion Axis (MAM)
La instrucción MAM es una instrucción de salida, se usa la instrucción MAM para
iniciar un perfil de control de movimiento para un eje.
Para usar la instrucción MAM:
• Se configura el eje como servo eje o como eje virtual.
• Se asegura que la tensión del eje tiene el servo activado si el eje es un servo
eje.
Se tiene los operandos que se muestra en la siguiente imagen.
6
MAM cambia a los bits de estado de eje.
7
DESARROLLO
A. Realizar el enlace punto a punto entre la computadora y el PAC
ControlLogix o CompactLogix de acuerdo con la topología.
I. Para la PC utilizar la configuración de área local.
II. Para el PLC utilizar el software BOOTP/DHCP server.
III. utilizar el software BOOTP/DHCP server.
8
2) Como se muestra a continuación se selecciona la MAC proporcionada por
el software BOOTP y se le da la dirección de la IP correspondiente.
9
5) Ahora en el software de RSLinx se observa que ya se encuentra la topología
punto a punto, con un controlador CompactLogix y los servodrives.
6) Para poder asignas las IP´s a las estaciones de trabajo se debe abrir
el centro de conexión de redes.
10
• En el nuevo menú se da clic secundario y se selecciona propiedades.
11
B. Configurar el Driver de comunicación Ethernet /IP con el software
RSLinx.
1) Se abre el software de RSLinx Classic.
12
3) Se elige la comunicación EtherNet/IP Driver
13
C. Con el software Studio 5000 generar un nuevo proyecto, seleccionando
el controlador que se está utilizando.
I. Tipo de carga: Rotacional Acoplado Directamente
II. Unidades de escalamiento son Revs
14
4) De la ventana de Configuración de la IP, del recuadro de “Device Name” se
selecciona la parte de “1769-L27ERM” del nombre de nuestra IP, clic derecho
y copiar.
15
6) En la parte inferior de la ventana de Configuración, encontramos un recuadro
de Name y escribimos “Servo_Controlador1”. Posteriormente damos clic en
Next.
16
8) En la ventana que nos aparece, podemos verificar que se tiene el numero
“24.011” en Revisión.
17
11) Damos clic en la opción de “Scalling” que pertenece a “Motor”, veremos
nuevas opciones de las cuales nosotros vamos a seleccionar el tipo de carga
“Direct Coupled Rotatory”, que normalmente viene de forma predeterminada.
Se elige esta opción dado que se tiene un Eje rotatorio, el motor, servomotor,
una base y un disco que hacen el movimiento rotatorio e indica que es
acoplado directamente.
18
12) Ahora en la parte inferior, esta habilitada la opción de Unidades, donde
nosotros vamos a configurar que sean “Revs”, la base predeterminada como
Revoluciones. Además de poner en Scalling “1.0” revolución por “1.0”.
19
3) En la parte inferior en “Travel Limit”, viene preestablecido las unidades de
“Revs” que seleccionamos anteriormente. En este caso, escribiremos que
será “45” Revs como límite.
20
6) Posteriormente, también se puede visualizar la opción de “Torque”, con un
valor preestablecido de “100.0” % Rated del par nominal. En este caso,
asignaremos un valor de “80” % Rated.
7) Con esto se habilita el lazo del par. Ahora procedemos a abrir la cámara de
nuestro equipo de tal modo que se vea también nuestro programa.
21
• Lazo de Posición
• Lazo de Velocidad
• Lazo de Torque (Lazo de par)
Cuando se realizó la sintonización, dentro de cada lazo de control que se tiene,
está un PI que establece la constante proporcionar integral de estos 3 lazos de
control.
10) Una vez revisados estos lazos, se tiene en la parte inferior una opción de
“Accept Tuned Values”, al que daremos clic.
11) Una vez aceptados los valores, los 3 lazos quedarán con esos valores de
contantes establecidos. En la parte de Tuned Status aparecerá “Ready”.
22
13) Ahora damos clic derecho en la opción de “Eje Rotatorio” de nuestro árbol de
proyecto y de las opciones que se despliegan, seleccionamos “Motion Direct
Commands…”
23
17) Con la ayuda de la cámara se podrá visualizar que el Eje comienza a girar
en sentido horario a la velocidad que se estableció.
24
20) En la cámara se puede visualizar que el Eje comienza a girar en sentido
horario, pero a una velocidad muy lenta que son 6 revs/min., lo equivalente
a 0.1.
22) Nuevamente probamos con un nuevo valor para Velocidad (Speed), el cuál
será “0.05” (lo equivalente a 3 revs/min) y ejecutamos. Y por consiguiente el
eje va a girar aún más lento que cuando se tenía a “0.1”.
25
23) Ahora probamos con “20” (1200 revs/min), para verificar que a pesar de que
el Eje gire mucho más rápido seguirá funcionando de manera correcta. Lo
cual se comprueba observando el Eje en la cámara y que cumple esta
función.
24) Ahora para detenerlo, damos el valor de “0” (0 revs/min), lo cual hará que el
Eje detenga su movimiento y que se puede verificar en la imagen que
muestra la cámara del equipo.
26
25) Posteriormente nos ubicamos en el apartado de opciones del lado izquierdo
de la misma ventana de “Motion Direct Commands”, y seleccionamos la
opción “MAM” (Motion Axis Move).
27
27) Además de determinar que se tenga el valor de “1” en Position (posición) al
igual que en Speed (velocidad). Una vez modificados, lo ejecutamos.
28) De esta forma el disco o eje, dará “1 rev.”, que se podrá visualizar en la
cámara.
29) Para visualizar que sea más notoria la Revolución, cambiamos el valor de
Speed (velocidad) a “0.2” conservando el mismo valor de Position. Luego
ejecutamos.
30) Haciendo que el eje llegue a la posición que establecimos, y que podemos
visualizar en la cámara del equipo.
28
31) Ahora modificamos el valor de Speed, a “20” y damos clic en ejecutar. El
eje va a girar demasiado rápido pero se va a detener en “1” revolución.
33) Ahora para apagar el eje, damos clic en el comando “MSF” (Motion Servo
Off). Posteriormente ejecutamos y quedará apagado correctamente.
29
E. Realizar las siguientes subrutinas en el proyecto RSLogix o Studio
5000:
I. MainRoutine
II. Habilitacion_EjeRotacional
III. EjeRotacional_MAJ
IV. EjeRotacional_MAM
V. Secuencia_MAJ
VI. Secuencia_MAM
Desde el MainRoutine realizar los saltos a las demás subrutinas.
1) Nos ubicamos en el árbol de programa, y damos clic derecho sobre
“MainProgram”, para crear una nueva subrutina.
2) Nos aparecerá una nueva ventana y configuramos la subrutina con el nombre
de “Eje_Rotacional_MAJ”. Damos clic en OK.
30
5) Ahora damos clic derecho sobre el mismo contacto abierto, y del menú que
aparece, seleccionamos la opción de “New Saltar_Eje_Rotacional_JOG”
para crear su Tag.
31
F. En la memoria local del controlador “Program Tag”, crear los Tags de
acuerdo con el documento “Tags” para Control de Movimiento.
1) Para esta parte, utilizaremos un documento de Excel que contiene los tags
que estaremos utilizando para la configuración de los Ejes. Para ellos nos
ubicamos en el Explorador de Windows.
2) Ubicamos la dirección de “commesse (\\VBoxSvr) (Z:)
32
4) Cuando se abre el archivo, se puede visualizar que se tiene una tabla donde
se mencionan los tags por Señal, Nombre, Tipo de Dato y sus Atributos.
5) Para poder hacer uso de estos tags, se tienen que identificar a que elementos
pertenecen. De tal modo, que solo se tendrá que seleccionar el nombre,
copiar y pegar donde corresponde.
G. En la Subrutina Habilitación_EjeRotacional realizar el programa para
habilitar el eje rotacional dese la instrucción del mensaje.
1) Una vez creada la subrutina denominada “EjeRotacional_MAJ”, se procede
a realizar el programa correspondiente. Para esto, primero se agrega un
contacto normalmente abierto y un bloque MSO, para el tag del contacto
abierto será “HMI_On_EjeRotacional”, lo cual indica el accionamiento del
bloque MSO, mientras que, en el bloque de encendido MSO tendrá como
tags en el apartado Axis “Eje_Rotatorio” y en el apartado Motion Control
“MSO_On_EjeRotatorio”, con esto se energiza el eje del tag asignado.
33
cual es “HMI_Jog_EjeRotatorio”, además, se asegura que el tipo de dato sea
booleano y se encuentre ubicado en la carpeta Main Program.
34
6) En el apartado de dirección (Direction), se le agrega un nuevo tag, el cual
tendrá como nombre “Dir_EjeRotatorio”, este apartado debe ser de tipo de
dato doble entero (DINT) y al igual que los anteriores, ubicarse en Main
Program.
35
8) En el apartado de unidades de velocidad, se da click en la flecha que aparece
en un costado y se selecciona la opción de unidades por segundo (units per
sec).
36
10) Para el apartado de “Jerk Units” será de tipo unidades por segundo al cubo
(Units per sec3) y para el apartado margen (Marge) se elige la opción de
deshabilitarlo para esta operación.
37
12) En el apartado de perfil (Profile) se le da click y se expande la flecha que
aparece, en esta se muestran 2 opciones, de las cuales se elige la opción
trapezoidal.
13) Para el apartado del ritmo de acelearión (Accel Rate) se crea un nuevo tag,
el cual tendrá como nombre “Accel_EjeRotatorio”, el tipo de dato para este
tag es de tipo real y al igual que los demás tags creados anteriormente debe
ubicarse en la carpeta Main Program. Lo mismo se hace para el apartado de
ritmo de desaceleración, con la diferencia del nombre de tag, el cual tendrá
como nombre “Decel_EjeRotatorio”.
14) Para los apartados de “Accel Jerk” y “Decel Jerk”, el tipo de dato debe ser
real y que se encuentren ubicados en la carpeta Main Program, la diferencia
entre ambos es el tag que tendrá cada uno. Para el caso del apartado “Accel
38
Jerk” tendrá el nombre de “AccelJerk_EjeRotatorio” y para el apartado “Decel
Jerk” tendrá el nombre de “DecelJerk_EjeRotatorio”.
15) Con estos tags asignados y valores en el bloque MAJ, queda completamente
configurado.
16) Al igual que se hizo con el bloque MAJ, se procede a configurar el bloque
MAS, el cual también debe tener su contacto normalmente abierto para su
activación del bloque.
39
17) Para esto en el contacto abierto, se pondrá un tag con el nombre
“HMI_Stop_EjeRotatorio”, el cual, como su nombre lo indica, se encarga de
activar el bloque MAS para detener el eje rotatorio en su totalidad.
40
20) Para el apartado de unidades de desaceleración, se selecciona la opcion de
unidades por segundo al cuadrado (Units per sec2). Para el apartado de
Change Decel Jerk se selecciona la opción de si (Yes). Además, en el
apartado Jerk Units se selecciona la opcion de unidades por segundo al cubo
(Units per sec3).
22) Así mismo, para el apartado de “Decel Jerk” se selecciona el tag previamente
generado dando click, se despliega una ventana con los tags generados y se
selecciona el correspondiente, en este caso “DecelJerk_EjeRotatorio”.
41
23) Finalmente, se genera el tag en el apartado de control de movimiento (Motion
Control), el cual tendrá el nombre de “MAS_Stop_EjeRotatorio”. Esta
instrucción es de tipo de dato de movimiento y al igual que los anteriores,
debe pertenecer a la carpeta Main Program. Con esto queda completamente
configurado el bloque MAS.
25) Como se vio previamente, se tiene que agregar un tag para el contacto
normalmente abierto para activar el bloque MASD. El nombre que tendrá el
42
tag será “HMI_ShutdownReset_EjeRotatorio”, el cual es de tipo de dato
booleano y debe estar ubicado en la carpeta Main Program.
43
a. Para la siguiente instrucción se coloca nuevamente un contacto
normalmente abierto y el bloque MASR.
44
30) Finalmente, se crea el tag correspondiente en el apartado de control de
movimiento (Motion control) con el nombre
“MASR_ShutdowReset_EjeRotatorio”, el cual es tipo de dato de instrucción
de movimiento y se encuentra ubicado en la carpeta Main Program. Con esto
queda completo el bloque MASR.
45
32) En el bloque MAFR en el apartado de Axis (eje) se selecciona el eje a mover
o accionar, en este caso se selecciona el eje rotatorio.
46
a. En la última instrucción se coloca un contacto abierto para su
activación y el bloque MSF.
35) En el apartado Axis (eje) se selecciona el eje a accionar, que en este caso
es el eje rotatorio.
47
37) Con esto queda completado el programa para su ejecución.
a. Una vez completado el programa, se procede a realizar una nueva
tendencia para la velocidad del eje rotatorio, para esto, se da click
derecho en el apartado del árbol del proyecto “Trend” y se selecciona
la opción “New Trend”.
48
39) Finalmente, aparece una serie de datos, en las cuales se expande la opcion
de “Eje Rotatorio y se selecciona la subopción “Eje Rotatorio Actual Velocity”,
para agregarlo se da click en el apartado “Add” y aparecerá en la parte inferior
agregada. Una vez agregada se da click en terminar.
40) Con esto se abre una gráfica, a la cual se le da click derecho en el área de
muestreo (fondo negro) y se selecciona las propiedades de la gráfica (Chart
Properties).
49
41) Dentro de las propiedades de la gráfica, en el apartado de “Display” se
modifica el color de fondo de la gráfica, de preferencia de color blanco.
50
44) Finalmente, en el apartado de eje “Y” se modifica los limites superiores e
inferiores que tendrá la gráfica, para esto se selecciona la opción de
personalizado (Custom) y se coloca un valor de “-50 a 50”. Con esto queda
configurada las propiedades de la gráfica.
51
45) Se procede a descargar el programa en el PLC.
52
b. Una vez activado el bloque de encendido MSO, se procede a activar
el bloque MAJ, el cual se acciona dando click derecho en el contacto
HMI_Jog_EjeRotatorio y seleccionar la opción “Toggle bit”.
53
d. Para solucionar la falla se apaga el contacto dando click derecho y
seleccionando la opción “Toggle bit” y se vuelve a encender haciendo
lo mismo previamente dicho.
54
Posteriormente se cambia la velocidad del eje cambiando su velocidad de 1 a 5
revoluciones por segundo.
55
g. Ahora bien, se procede a observar su comportamiento en la gráfica
en la tendencia previamente creada dónde se configuraron las
propiedades de la gráfica. Se da click en el “Run” y se observa que se
mantiene un valor constante de “-5”, esto es por la velocidad asignada
de 5 y el signo negativo es debido al sentido en el que se encuentra
girando el eje, en este caso es antihorario.
56
h. Finalmente, se procede a para el programa, para esto, primero se
debe detener la operación, para eso se activa el bloque MAS
accionando su contacto de activación.
57
Una vez activado el paro del programa se procede a apagarlo, para esto se acciona
el bloque MSF activando su contacto normalmente abierto.
58
I. En la subrutina EjeRotacional_MAM, realizar el programa desde el
encendido (MSO), movimiento Move (MAM), paro (MAS), pagado (MSF),
shutdown (MASD), reset del shutdown (MASR) y reset de falla (MAFR).
Con la finalidad de comprobar el funcionamiento del comando de
movimiento para mover el eje MAM.
Antes de comenzar con el desarrollo del programa, se debe anexar su salto a
subrutina desde la rutina MainRoutine en el árbol del proyecto. Para esto, se agrega
un contacto normalmente abierto con el tag “Salto_Eje_Rotacional_MAM” y un
bloque JSR que contiene la dirección de la subrutina a activar, en este caso el tag
de la rutina “Eje_Rotacional_MAJ”.
59
Ahora bien, para configurar el bloque MAM, en el apartado de Axis, lo que se va
activar sigue siendo el eje rotatorio, por ende, en el apartado previamente
mencionado, se da click en la flecha que aparece en un costado, con esto se
despliega las opciones que se tienen generadas, en este caso se selecciona la
opción etiquetada como “Eje_Rotatorio” y se da enter.
60
En el apartado Motion Control del bloque MAM, se le agrega un nuevo tag, el cual
tendrá como nombre “MAM_Move_EjeRotatorio”. En este bloque a diferencia del
anterior, es de tipo de dato de movimiento, es decir, va a ejecutar un movimiento.
61
En el apartado de unidades de velocidad (Speed Units), se selecciona la opción de
unidades por segundo (Units per sec), mientras que, para los apartados de unidades
de aceleración y desaceleración se selecciona la opción de unidades por segundo
al cuadrado (Units per sec2).
62
Para el apartado de seguro de posición (Lock Position) se le pone directamente el
valor de 0, mientras que para el apartado de seguro de dirección (Lock Direction)
se selecciona la opción de ninguno (None).
63
En el apartado de posición (Position) se crea un nuevo tag, el cual tendrá como
nombre “Position_EjeRotatorio”, éste será de tipo real y ubicado en la carpeta del
programa Servo_Controlador1”.
64
Finalmente, para los parámetros faltantes del bloque MAM, se mandan a llamar los
tags correspondientes, ya que, son los mismos que se utilizaron para la elaboración
del bloque de movimiento MAJ.
65
66
Con esto queda completamente configurado el bloque de movimiento MAM.
3) Al igual que se hizo con el bloque MAJ, se procede a configurar el bloque
MAS, el cual también debe tener su contacto normalmente abierto para su
activación del bloque.
67
Ahora bien, se procede a configurar el bloque MAS. En el apartado de Axis (eje), se
da click y aparecen 2 opciones de ejes, en este caso el que se desea activar es el
eje rotacional.
68
Así mismo, para el apartado de “Decel Jerk” se selecciona el tag previamente
generado dando click, se despliega una ventana con los tags generados y se
selecciona el correspondiente, en este caso “DecelJerk_EjeRotatorio”.
69
4) Al igual que en el paso 3, se procede a poner un contacto normalmente
abierto para la activación del bloque correspondiente y un bloque MASD.
Como se vio previamente, se tiene que agregar un tag para el contacto normalmente
abierto para activar el bloque MASD. El nombre que tendrá el tag será
“HMI_ShutdownReset_EjeRotatorio”, el cual es de tipo de dato booleano y debe
estar ubicado en la carpeta Main Program.
70
En el apartado de Axis (eje) se selecciona el tag previamente creado de
“Eje_Rotatorio”, que es que hace la acción de activar el eje rotatorio de forma fisica.
72
6) En la penúltima línea de instrucción, así como en las demás, se coloca su
contacto normalmente abierto para su activación y el bloque MAFR.
73
7) En la última instrucción se coloca un contacto abierto para su activación y el
bloque MSF.
En el apartado Axis (eje) se selecciona el eje a accionar, que en este caso es el eje
rotatorio.
74
Finalmente, en el apartado de control de movimiento (Motion Control) se crea el tag
que tendrá como nombre “MSF_Off_EjeRotatorio”, el cual es tipo de dato de
instrucción de movimiento y se ubica en la carpeta Main Progrma. Con esto queda
completado el bloque MSF.
75
Con esto se abre un cuadro de dialogo, en el cual se le pone el nombre de
“Eje_Rotatorio_Move”, se deja el periodo de muestra preestablecido y se da click
en avanzar.
Finalmente, aparece una serie de datos, en las cuales se expande la opcion de “Eje
Rotatorio y se seleccionan las subopciónes “Eje Rotatorio Actual Velocity” y “Eje
Rotatorio Actual Position”, para agregarlo se da click en el apartado “Add” y
aparecerán en la parte inferior agregados, después se da click en terminar.
76
9) Con esto se abre una gráfica, a la cual se le da click derecho en el área de
muestreo (fondo negro) y se selecciona las propiedades de la gráfica (Chart
Properties).
77
En el siguiente apartado de las propiedades de la gráfica, se modifica el grosor de
línea que se mostrará en la misma, en este caso se le coloca un grosor de 2 en
ambas secciones.
78
Finalmente, en el apartado de eje “Y” se modifica los limites superiores e inferiores
que tendrá la gráfica, para esto se selecciona la opción de personalizado (Custom)
y se coloca un valor de “-50 a 50”. Con esto queda configurada las propiedades de
la gráfica.
79
11) Una vez descargado el programa en el PLC se procede a poner en modo
“Run” la gráfica para observar su comportamiento, con esto se puede
observar una primera lectura la cual indica que está recibiendo las muestras
de prueba del programa creado.
12) Ya que se comprobó que la gráfica responde a los datos obtenidos del
programa elaborado, se procede a correr el programa con valores
establecidos por el usuario. Para esto primero se activa el bloque MAM
cerrando su contacto normalmente abierto dando click derecho sobre él y
seleccionando la opción “Toggle bit”.
80
13) En los parámetros de posición (Position) y de velocidad (Speed) se insertan
los valores que se deseen observar en la gráfica de respuesta. Un ejemplo
es dar un valor de posición de “-100” a una velocidad de 10 revoluciones por
segundo. Cada vez que se active el contacto de entrada dará una señal de
entrada que se irá incrementando, es decir, no se reinicia, se va acumulando
el valor previó más el nuevo valor que se le ponga a criterio del usuario.
81
J. En la subrutina Secuencia_MAJ, realizar el programa desde el
encendido (MSO), movimiento Jog (MAJ), paro (MAS), apagado (MSF)
shutdown (MASD), reset del shutdown (MASR) y reset de falla (MAFR).
Con la finalidad de realizar el perfil de movimiento de velocidad,
mediante la ejecución del comando de movimiento Jog (MAJ), en donde
se progaman “n” MAJ deacuerdo al perfil del anexo 1. MAJ eje rotatorio.
Una vez pues su salto a subrutina se procede a analizar el perfil de movimiento que
se desea realizar.
82
1) Una vez creada la subrutina denominada “Secuencia_MAJ”, se procede a
realizar el programa correspondiente. Para esto, se copia y se pega el
programa previamente hecho para la subrutina “EjeRotacional_MAJ”
cambiando etiquetas. Para el contacto normalmente abierto tendrá el tag
“HMI_On_EjeRotatorio”, lo cual indica el accionamiento del bloque MSO,
mientras que, en el bloque de encendido MSO tendrá como tags en el
apartado Axis “MAJ_1” y en el apartado Motion Control
“MSO_On_EjeRotatorio”, con esto se energiza el eje del tag asignado.
83
despliega las opciones que se tienen generadas, en este caso se selecciona la
opción etiquetada como “Eje_Rotatorio” y se da enter.
En el apartado Motion Control del bloque MAJ, se le agrega un nuevo tag, el cual
tendrá como nombre “MAJ_1”. En este bloque a diferencia del anterior, es de tipo
de dato de movimiento, es decir, va a ejecutar un movimiento.
84
En el apartado de velocidad (Speed), se le agrega directamente el primer valor
indicado en la imagen de la gráfica esperada, el cual es un valor de 3.8.
85
Para el apartado de aceleración (Accel Rate) y desaceleración se le ponen el valor
directamente de 10.5 a cada uno.
Para el apartado de “Jerk Units” será de tipo unidades por segundo al cubo (Units
per sec3) y para el apartado margen (Marge) se elige la opción de deshabilitarlo
para esta operación.
86
En el apartado de velocidad de margen se elige la opción programada
(Programmed) y para el seguro de posición (Lock position) se le coloca un valor de
“0”. Para el apartado de seguro se dirección (Lock direction) se selecciona la opcion
de ninguno (None).
Para el apartado del ritmo de acelearión (Accel Rate) se crea un nuevo tag, el cual
tendrá como nombre “Accel_EjeRotatorio”, el tipo de dato para este tag es de tipo
real y al igual que los demás tags creados anteriormente debe ubicarse en la carpeta
Main Program. Lo mismo se hace para el apartado de ritmo de desaceleración, con
la diferencia del nombre de tag, el cual tendrá como nombre “Decel_EjeRotatorio”.
87
Para los apartados de “Accel Jerk” y “Decel Jerk”, el tipo de dato debe ser real y que
se encuentren ubicados en la carpeta Main Program, la diferencia entre ambos es
el tag que tendrá cada uno. Para el caso del apartado “Accel Jerk” tendrá el nombre
de “AccelJerk_EjeRotatorio” y para el apartado “Decel Jerk” tendrá el nombre de
“DecelJerk_EjeRotatorio”.
88
Antes de realizar los movimientos restantes que hará el programa, se procede a
agregar un temporizador con retardo a la conexión, el cual delimitará el tiempo de
operación de cada bloque MAJ creado previamente. Para esto, el tag
correspondiente para el timmer es “TIMER_JOG”.
89
Para su activación se requieren 2 condiciones, para esto se agregan 2 contactos,
uno será abierto y el otro cerrado.
Para el contacto cerrado tendrá la dirección del temporizador DN, para esto se da
doble click en el contacto y se despliega una serie de datos, en esta lista se expande
las opciones de “TIMER_JOG” y se selecciona la salida DN. Con esto el programa
queda de forma cíclica, es decir, una vez termina su ciclo de 30 segundos se vuelve
a iniciar nuevamente.
Mientras que para el contacto normalmente abierto se crea un nuevo tag, el cual
tendrá como nombre “ACTIVACION_TIMER”.
90
Así mismo, de forma adicional se agrega un bloque de igualdad (EQU), el cual se
coloca en paralelo al contacto “JOG_1” que activa el bloque MAJ.
91
Para la realización de los siguientes bloques MAJ, se copia y pega el renglón con el
bloque MAJ y su contacto abierto con el bloque EQU en paralelo, cambiando el tag
del contacto abierto, el tag del apartado Motion Control del bloque MAJ, el valor de
la fuente B del igualador (Source B del bloque EQU) y los valores de velocidad, así
como los de aceleración y desaceleración y en algunos casos la dirección, esto es
debido a que la gráfica presenta valores negativos, con el cambio de dirección se
pueden obtener estas respuestas negativas.
Para el movimiento 2 se tiene que:
• El tag del contacto abierto es “JOG_2” y el valor para la fuente B del bloque
EQU es de 3000 milisegundos, ya que esto equivale a 3 segundos de
duración del bloque.
92
• En el apartado Motion Control el nuevo tag es “MAJ_2”.
93
• La dirección se conserva en 0 (sentido horario).
94
• En el apartado Motion Control el nuevo tag es “MAJ_3”.
95
• Para el apartado de aceleración y desaceleración se tiene un valor de
96
Para el movimiento 4 se tiene que:
• El tag del contacto abierto es “JOG_4” y el valor para la fuente B del bloque
EQU aumenta su valor de 6000 a 9000 milisegundos.
97
• Para el apartado de aceleración y desaceleración se tiene un valor de 25
98
Para el movimiento 5 se tiene que:
• El tag del contacto abierto es “JOG_5” y el valor para la fuente B del bloque
EQU aumenta su valor de 9000 a 12000 milisegundos.
99
• Para el apartado de aceleración y desaceleración se tiene un valor de -25.
100
Para el movimiento 6 se tiene que:
• El tag del contacto abierto es “JOG_6” y el valor para la fuente B del bloque
EQU aumenta su valor de 12000 a 15000 milisegundos.
101
• Para el apartado de aceleración y desaceleración se tiene un valor de -5.
102
Para el movimiento 7 se tiene que:
• El tag del contacto abierto es “JOG_7” y el valor para la fuente B del bloque
EQU aumenta su valor de 15000 a 18000 milisegundos.
103
• Para el apartado de aceleración y desaceleración se tiene un valor de -20.
104
Para el movimiento 8 se tiene que:
• El tag del contacto abierto es “JOG_8” y el valor para la fuente B del bloque
EQU aumenta su valor de 18000 a 21000 milisegundos.
105
• Para el apartado de aceleración y desaceleración se tiene un valor de -14.
106
• Para el apartado de velocidad se tiene un valor de 0.
107
• La dirección se conserva en 1 (sentido antihorario).
108
Ahora bien, se procede a configurar el bloque MAS. En el apartado de Axis (eje), se
da click y aparecen 2 opciones de ejes, en este caso el que se desea activar es el
eje rotacional.
109
Para el apartado de unidades de desaceleración, se selecciona la opcion de
unidades por segundo al cuadrado (Units per sec2). Para el apartado de Change
Decel Jerk se selecciona la opción de si (Yes). Además, en el apartado Jerk Units
se selecciona la opcion de unidades por segundo al cubo (Units per sec3).
110
Finalmente, se genera el tag en el apartado de control de movimiento (Motion
Control), el cual tendrá el nombre de “MAS_Stop_EjeRotatorio”. Esta instrucción es
de tipo de dato de movimiento y al igual que los anteriores, debe pertenecer a la
carpeta Main Program. Con esto queda completamente configurado el bloque MAS.
Como se vio previamente, se tiene que agregar un tag para el contacto normalmente
abierto para activar el bloque MASD. El nombre que tendrá el tag será
“HMI_ShutdownReset_EjeRotatorio”, el cual es de tipo de dato booleano y debe
estar ubicado en la carpeta Main Program.
111
En el apartado de Axis (eje) se selecciona el tag previamente creado de
“Eje_Rotatorio”, que es que hace la acción de activar el eje rotatorio de forma fisica.
112
5) Para la siguiente instrucción se coloca nuevamente un contacto
normalmente abierto y el bloque MASR.
113
Finalmente, se crea el tag correspondiente en el apartado de control de movimiento
(Motion control) con el nombre “MASR_ShutdowReset_EjeRotatorio”, el cual es tipo
de dato de instrucción de movimiento y se encuentra ubicado en la carpeta Main
Program. Con esto queda completo el bloque MASR.
114
En el bloque MAFR en el apartado de Axis (eje) se selecciona el eje a mover o
accionar, en este caso se selecciona el eje rotatorio.
115
7) En la última instrucción se coloca un contacto abierto para su activación y el
bloque MSF.
En el apartado Axis (eje) se selecciona el eje a accionar, que en este caso es el eje
rotatorio.
116
Con esto queda completado el programa para su ejecución.
8) Con el programa completo se procede a cargarlo al PAC.
117
10) Así mismo, una vez activada la subrutina, se procede a activar el programa
creado en la misma, dando click derecho en el contacto abierto y
seleccionando la opcion “Toggle bit” para habilitar el bloque MSO.
118
Con esto se puede observar como el eje rotatorio funciona de forma física con ayuda
de la cámara.
119
Antes de comenzar con el desarrollo del programa, se debe anexar su salto a
subrutina desde la rutina MainRoutine en el árbol del proyecto. Para esto, se agrega
un contacto normalmente abierto con el tag “Salto_Secuencia_MAM” y un bloque
JSR que contiene la dirección de la subrutina a activar, en este caso el tag de la
rutina es “Secuencia_MAM”.
Para esto, al igual que el programa anterior, se hace uso de valores especificos en
los parámetros del bloque MAM para poder llevar a cabo esta respuesta especifica
que se desea obtener, por consiguiente, se tiene que los valores para obtener dicha
gráfica son:
120
Una vez conocidos los criterios que se deben tomar en cuenta para la obtención de
la gráfica requerida se procede a desarrollar el programa.
121
1) Una vez creada la subrutina denominada “Secuencia_MAM”, se procede a
realizar el programa correspondiente. Para esto, primero se agrega un
contacto normalmente abierto y un bloque MSO, para el tag del contacto
abierto será “HMI_On_EjeRotacional”, lo cual indica el accionamiento del
bloque MSO, mientras que, en el bloque de encendido MSO tendrá como
tags en el apartado Axis “Eje_Rotatorio” y en el apartado Motion Control
“MSO_On_EjeRotatorio”, con esto se energiza el eje del tag asignado.
2) A diferencia del punto “I”, se hará uso de un bloque MAM en lugar de uno
MAJ, igual forma que en el punto anterior, se agrega un contacto
normalmente abierto con su respectivo bloque, el cual en este caso es el
bloque de movimiento (MAM).
122
Ahora bien, para configurar el bloque MAM, en el apartado de Axis, lo que se va
activar sigue siendo el eje rotatorio, por ende, en el apartado previamente
mencionado, se da click en la flecha que aparece en un costado, con esto se
despliega las opciones que se tienen generadas, en este caso se selecciona la
opción etiquetada como “Eje_Rotatorio” y se da enter.
En el apartado Motion Control del bloque MAM, se le agrega un nuevo tag, el cual
tendrá como nombre “MAM_1”. En este bloque a diferencia del anterior, es de tipo
de dato de movimiento, es decir, va a ejecutar un movimiento.
123
En el apartado de tipo de movimiento (Move Type), se le pone directamente el valor
de 1, ya que indica que es un movimiento de tipo incremental, si se lo pone el valor
de 0 se indica que es un valor de tipo absoluto.
124
Para el apartado de perfil (Profile), se selecciona la opción trapezoidal, mientras
que, para el apartado de “Jerk Units” se selecciona la opción de unidades por
segundo al cubo (Units per sec3).
125
Para el apartado de seguro de posición (Lock Position) se le pone directamente el
valor de 0, mientras que para el apartado de seguro de dirección (Lock Direction)
se selecciona la opción de ninguno (None).
126
Para ambos valores tanto de aceleración (Rate y Jerk) como de desaceleración
(Rate y Jerk) se coloca directamente un valor de 50 en los 4 segmentos.
127
En el apartado de posición (Position) se coloca directamente el valor de 3.2 para
poder iniciar con el comportamiento de la gráfica propuesta.
Finalmente, para los parámetros faltantes del bloque MAM, se mandan a llamar los
tags correspondientes, ya que, son los mismos que se utilizaron para la elaboración
del bloque de movimiento MAJ.
128
129
Con esto queda completamente configurado el bloque de movimiento MAM para el
primer movimiento, para el resto de los bloques MAM se conservarán la mayoria de
sus parámetros iguales, lo que se cambia en cada uno es el Tag del contacto abierto
que los activa, así como el Tag del apartado Motion Control y los valores de posición
y velocidad de cada uno respectivamente.
• Para el Tag del contacto abierto que activará al bloque MAM número 2, se
tiene que elegir la opción “MAM_1.PC”, el bit PC hace referencia el fin del
movimiento anterior, es decir, una vez completado el movimiento previo se
acciona su bit PC activando el siguiente, que en este caso es el bloque
MAM_2.
130
• Así mismo, el segundo bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_2.
131
• Mientras que el valor para el apartado de la velocidad para el segundo bloque
corresponde a un valor de 4.35.
132
• Así mismo, el tercer bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_3.
133
• Mientras que el valor para el apartado de la velocidad para el tercer bloque
corresponde a un valor de 11.25.
• Para el Tag del contacto abierto que activará al bloque MAM número 3, se
tiene que elegir la opción “MAM_3.PC”.
134
• Así mismo, el cuarto bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_4.
135
Con esto queda completamente configurado el cuarto bloque de movimiento MAM.
• Para el Tag del contacto abierto que activará al bloque MAM número 3, se
tiene que elegir la opción “MAM_4.PC”.
• Así mismo, el tercer bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_5.
136
• El valor en el apartado de la posición para el quinto bloque corresponde al
valor de -10.
137
Con esto queda completamente configurado el quinto bloque de movimiento MAM.
• Para el Tag del contacto abierto que activará al bloque MAM número 3, se
tiene que elegir la opción “MAM_5.PC”.
• Así mismo, el tercer bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_6.
138
• El valor en el apartado de la posición para el sexto bloque corresponde al
valor de -20.
139
Con esto queda completamente configurado el sexto bloque de movimiento MAM.
• Para el Tag del contacto abierto que activará al bloque MAM número 3, se
tiene que elegir la opción “MAM_6.PC”.
• Así mismo, el tercer bloque MAM se tiene que el Tag del apartado Motion
Control es MAM_7.
140
• El valor en el apartado de la posición para el séptimo bloque corresponde al
valor de -14.
141
Con esto queda completamente configurado el séptimo bloque de movimiento MAM.
Para finalizar el programa al igual que se hizo en el programa MAJ, se agrega un
contacto en paralelo con el contacto “Move_1” ubicado en el primer bloque de
movimiento MAM, con direccion “MAM_7.PC”, con esto, una vez se finaliza el
séptimo y ultimo movimiento, vuelve a activar el primero, quedando este de forma
cíclica.
142
Para esto en el contacto abierto, se pondrá un tag con el nombre
“HMI_Stop_EjeRotatorio”, el cual, como su nombre lo indica, se encarga de activar
el bloque MAS para detener el eje rotatorio en su totalidad.
143
Para el apartado de unidades de desaceleración, se selecciona la opcion de
unidades por segundo al cuadrado (Units per sec2). Para el apartado de Change
Decel Jerk se selecciona la opción de si (Yes). Además, en el apartado Jerk Units
se selecciona la opcion de unidades por segundo al cubo (Units per sec3).
144
Finalmente, se genera el tag en el apartado de control de movimiento (Motion
Control), el cual tendrá el nombre de “MAS_Stop_EjeRotatorio”. Esta instrucción es
de tipo de dato de movimiento y al igual que los anteriores, debe pertenecer a la
carpeta Main Program. Con esto queda completamente configurado el bloque MAS.
Como se vio previamente, se tiene que agregar un tag para el contacto normalmente
abierto para activar el bloque MASD. El nombre que tendrá el tag será
145
“HMI_ShutdownReset_EjeRotatorio”, el cual es de tipo de dato booleano y debe
estar ubicado en la carpeta Main Program.
146
5) Para la siguiente instrucción se coloca nuevamente un contacto
normalmente abierto y el bloque MASR.
147
Finalmente, se crea el tag correspondiente en el apartado de control de movimiento
(Motion control) con el nombre “MASR_ShutdowReset_EjeRotatorio”, el cual es tipo
de dato de instrucción de movimiento y se encuentra ubicado en la carpeta Main
Program. Con esto queda completo el bloque MASR.
148
En el bloque MAFR en el apartado de Axis (eje) se selecciona el eje a mover o
accionar, en este caso se selecciona el eje rotatorio.
149
7) En la última instrucción se coloca un contacto abierto para su activación y el
bloque MSF.
En el apartado Axis (eje) se selecciona el eje a accionar, que en este caso es el eje
rotatorio.
150
Con esto queda completado el programa para su ejecución.
8) Con el programa completo se procede a cargarlo al PAC.
151
10) Así mismo, una vez activada la subrutina, se procede a activar el programa
creado en la misma, dando click derecho en el contacto abierto y
seleccionando la opcion “Toggle bit” para habilitar el bloque MSO.
152
11) Así mismo, se abre la gráfica previamente realizada para la secuencia MAM
y se activa el contacto Move_1 para iniciar el programa de movimientos
preestablecidos por el usuario.
Con esto se puede observar el comportamiento del programa, tanto de forma gráfica
como de forma física mediante el uso de una cámara remota, con lo cual se concluye
que el programa cumple con la gráfica propuesta.
153
L. Los resultados de cada subrutina documentarlos con las tendencias de
posición y velocidad del eje rotacional.
Para la tendencia de la secuencia MAJ se tiene la siguiente respuesta:
154
RESULTADOS
En esta práctica se obtuvieron 4 resultados, 2 resultados tanto para el movimiento
MAJ y 2 para el movimiento MAM, cada uno presentó sus respuestas dependiendo
de los valores insertados por el usuario.
En la primera respuesta del programa MAJ se obtuvo como respuesta una gráfica,
en la cual solo se ve representado el valor de un solo bloque MAJ para entender el
movimiento que realiza de pulsos que manda al eje rotatorio.
Con esto se pudo entender el comportamiento del bloque MAJ de forma concreta y
como es que funciona un conjunto de bloques MAJ para el movimiento de un eje
rotatorio.
155
Mientras que, para el primer programa MAM, la respuesta que se obtuvo fue de
igual forma de un solo bloque MAM para entender su funcionamiento y como opera.
Con esto se puede observar que la respuesta del bloque MAJ es de pulsos, mientras
que la respuesta por parte del bloque MAM de igual forma es de pulsos, sin
embargo, su respuesta se observa de forma incremental.
156
CONCLUSIONES
Casimiro Ortiz Michael Steven: Después de haber realizado la practica
correspondiente y el presente reporte se logró realizar un enlace multipunto
mediante una red Ethernet/IP entre la computadora el PAC y los servodrives, con
los cuales se cumplió el objetivo de realizar el escalamiento y la sintonización de los
lazos de control, además de que con ayuda de las subrutinas se logró hacer uso de
manera directa y mediante programación en escalera activar los motion move en
especial las funciones de los comando MAJ y MAM, los cuales sirvieron para
generar los perfiles de movimiento del eje rotacional, y también se programaron y
se usaron las funciones como MSO para encender el drive, MAJ para tener
movimiento por jogeo, algunas funciones para resetear, detener el drive entre otras.
De la misma manera se realizó una subrutina en la cual se hizo uso de la función
Trends para lograr verificar que la secuencia de MAJ eje Rotatorio y MAM eje
rotatorio, cumplieran con las gráficas mostradas por el profesor y al asignarle a la
función la velocidad, posición aceleración y desaceleración los valores
correspondiente se logró obtener dichas gráficas, con lo cual se verificaba que la
conexión era correcta, la programación en lenguaje escalera era correcto y los
valores ingresados fueron los correctos ya que la gráfica fue similar y por ende el
escalamiento y la sintonización también fueron correctos, con lo anterior
mencionado se logra concluir que se cumplieron los objetivos y se obtuvieron los
resultados deseados.
Hernández Chepe Karla Damaris: En la realización de esta práctica se realizó la
configuración del Driver de comunicación Ethernet /IP con el software RSLinx, del
cual posteriormente logramos dar de altas las tarjetas o módulos de entradas y
salidas analógicas y digitales. De igual forma, establecimos un limite de recorrido a
una cierta de velocidad, que pudimos observar de forma correcta en la cámara del
equipo. Aunado a estos pasos, realizamos igual subrutinas de MAJ y MAM que
están relacionadas con el Eje Rotatorio. Con esto, logramos observar los cambios
de velocidad en el Eje mediante los parámetros que se tenían. Además, hicimos uso
de una gráfica parecida a la pantalla de un osciloscopio, para visualizar las señales
de acuerdo con los valores que fuimos ingresando. Cada elemento o bloque tenia
una cierta secuencia de movimiento, dentro del programa. Además de la subrutina
MAJ y MAM, se tenia diferencias como en el total de movimientos, ya que en el caso
de MAJ realizamos un total de 9 que mismos pudimos visualizar con las gráficas, y
en el caso de MAM visualizamos 7. También tenemos que considerar que había
valores negativos, los cuales se debían verificar en qué ocasiones se tenían que
ingresar de esa forma o cambiarse a valores positivos. También, dentro del
programa se tuvo la consideración de crear una secuencia que fuera cíclica.
Personalmente, al principio fue un poco confuso debido a la gran cantidad de
bloques y tags que se debían utilizar, considerando el tipo de dato pero que después
de estar practicando ya era mas clara la información e instrucción.
157
López Contreras Andrés: Con esta práctica se pudo realizar y comprobar el
comportamiento de los bloques MAJ y MAM, con la finalidad y observar cómo es
que se comportan con el cambio de diferentes valores de velocidad, posición y en
algunos casos de aceleración. Asimismo, se pudo observar el comportamiento de
cada bloque de forma individual, es decir, el comportamiento de cada bloque al
variar sus parámetros previamente mencionados, y mediante el uso de una
tendencia (gráfica) se pudo observar cómo es que reacciona la gráfica ante los
valores insertados por el usuario, tanto para el bloque MAJ como para él MAM.
Posteriormente se realizó la secuencia de movimientos para cada bloque, está
utilizando diversos bloques del mismo tipo para poder realizar una gráfica de
respuesta con valores de posición, velocidad y aceleración propuestos por el
usuario, cabe mencionar que la cantidad de bloques utilizados en ambos programas
la cantidad de movimientos que se requiere que haga cada programa, para el caso
del programa de bloques MAJ se tuvo un total de 9 movimientos, mientras que para
el programa de bloques MAM se tuvo un total de 7 movimientos. Además de ser los
movimientos, se hizo uso de un contacto auxiliar en paralelo en el primer movimiento
de cada programa para que así pudiera ser de forma cíclica cada secuencia una
vez que éste terminaba su último movimiento.
BIBLIOGRAFIA
158