Recortar: Arriba: 61,5 mm Abajo: 61,5 mm Izquierda: 43,5 mm Derecha: 43,5 mm
Controlador
Manual Instrucciones de programación CMXR Tracking
Manual571 707 es 1002NH [751 522]
Festo GDCP-CMXR-C2-ST-ES 1002NH 3
Original ________________________________________________________ de
Edición __________________________________________________ es 1002NH
Denominación ___________________________________ GDCP-CMXR-C2-ST-ES
Nº de artículo ________________________________________________ 571 707
(Festo AG & Co KG., D-73726 Esslingen, 2010)
Internet: http://www.festo.com
E-mail: [email protected]
Sin nuestra expresa autorización, queda terminantemente prohibida la reproducción total o parcial de este documento, así como su uso indebido y/o su exhibición o comunicación a terceros. De los infractores se exigirá el correspondiente resarcimiento de daños y perjuicios. Quedan reservados todos los derechos inherentes, en especial los de patentes, de modelos registrados y estéticos.
4 Festo GDCP-CMXR-C2-ST-ES 1002NH
Directorio de revisiones
Autor:
Nombre del manual:
Nombre del archivo:
Lugar de almacenamiento del archivo:
Nº Descripción Índice de revisiones Fecha de modificación
001 Redacción 1002NH 15.04.2010
Marcas registradas
ÍNDICE
Festo GDCP-CMXR-C2-ST-ES 1002NH 5
ÍNDICE
1. Introducción .......................................................................................................... 8
2. Medidas de seguridad........................................................................................... 9
2.1 Uso de la documentación..................................................................................... 9
2.2 Uso conforme a lo previsto .................................................................................. 9
2.3 Personal cualificado .......................................................................................... 10
2.4 Medidas de seguridad de los productos ............................................................ 10
2.5 Medidas de seguridad de este manual ............................................................... 10
2.6 Medidas de seguridad para el producto descrito ............................................... 11
3. Hardware ............................................................................................................ 12
3.1 Encoder ............................................................................................................. 12
3.1.1 Conexión del encoder mediante accionamiento CMMx de Festo ......... 13
3.1.2 Encoder estándar con señales de 5 V o de 24 V .................................. 15
3.2 Detección de objetos ......................................................................................... 16
3.2.1 Conexión de un detector digital .......................................................... 16
3.2.2 Conexión de Festo Vision .................................................................... 17
4. Software .............................................................................................................. 18
5. Función general de seguimiento ......................................................................... 19
5.1 Modo de funcionamiento ................................................................................... 19
5.2 Programación FTL .............................................................................................. 20
5.3 Relaciones de los sistemas de referencia ........................................................... 21
5.3.1 Iniciar seguimiento, sistema de referencia en movimiento, SetRefSysDyn .......................................................................................................... 21
5.3.2 Detener seguimiento .......................................................................... 23
5.3.3 Intercambio de información con el PLC ............................................... 23
5.4 Programación de PLC ......................................................................................... 25
5.4.1 Módulo RCTR_UpdateFrameInterface, actualizar sistema de referencia25
5.5 Aplicaciones ...................................................................................................... 28
5.5.1 Introducir piezas en un molde ............................................................ 28
5.5.2 Seguimiento de movimientos en una prensa plegadora ...................... 30
6. Seguimiento lineal .............................................................................................. 33
6.1 Sistemas transportadores .................................................................................. 34
6.1.1 Combinaciones de sistemas transportadores ..................................... 34
6.1.2 Punto cero .......................................................................................... 35
6.1.3 Orientación ........................................................................................ 36
6.2 Sistema de encoder, longitud de cinta, posición de detector .............................. 36
ÍNDICE
6 Festo GDCP-CMXR-C2-ST-ES 1002NH
6.3 Memoria de objetos, protocolo de objetos ......................................................... 37
6.4 Tratamiento de los objetos ................................................................................ 38
6.4.1 Seguimiento de objetos ..................................................................... 39
6.5 Activación de los objetos ................................................................................... 40
7. Programación FTL de seguimiento lineal ............................................................ 41
7.1 Datos de objeto ................................................................................................. 41
7.2 Módulo CONVEYOR ............................................................................................ 44
7.2.1 Método iniciar/detener el tratamiento, <Begin, End> ........................... 47
7.2.2 Método de esperar al próximo objeto <Wait> ....................................... 48
7.2.3 Método de esperar hasta que el objeto sea alcanzable, <WaitReachable> .......................................................................................................... 51
7.2.4 Método terminar objeto, <Done> ......................................................... 54
7.3 Páginas de visualización del módulo Conveyor .................................................. 56
7.3.1 Página de configuración ..................................................................... 57
7.3.2 Memoria de objetos ........................................................................... 58
7.3.3 Protocolo de objetos .......................................................................... 59
7.3.4 Diagnosis de piezas ............................................................................ 60
7.3.5 Página de estadísticas ........................................................................ 61
8. Programación PLC de seguimiento lineal ............................................................ 62
8.1 Modo de funcionamiento ................................................................................... 62
8.1.1 Tareas del PLC .................................................................................... 63
8.1.2 Contenido de la biblioteca RcTracking.lib ........................................... 63
8.2 Gestión de objetos............................................................................................. 64
8.2.1 Tratamiento de objetos con borrado automático de los objetos ......... 65
8.2.2 Tratamiento de objetos con borrado manual de los objetos................ 67
8.3 Datos de objetos, memoria de objetos ............................................................... 68
8.3.1 Tipo de dato de objeto TRCTR_OBJECT ............................................... 68
8.3.2 Estado de objeto TRCTR_ObjectState ................................................. 70
8.3.3 Añadir objeto, módulo RCTR_AddObject ............................................. 71
8.3.4 Borrar objeto, módulo RCTR_RemoveObject ....................................... 73
8.3.5 Leer datos de objeto, módulo RCTR_ReadBuffer ................................. 75
8.4 Sistema de transporte ....................................................................................... 77
8.4.1 Módulo RCTR_UpdateConvInterface ................................................... 77
8.4.2 Ejemplo de cálculo ConvReNum / ConvResDenom .............................. 81
8.5 Protocolo de objetos ......................................................................................... 82
8.5.1 Módulo RCTR_ReadLog ...................................................................... 83
8.5.2 Módulo RCTR_GetLog ......................................................................... 85
8.5.3 Módulo RCTR_GetLatestLog ............................................................... 87
8.6 Reponer memoria de objetos, protocolo de objetos ........................................... 89
8.6.1 Módulo RCTR_ResetData .................................................................... 89
ÍNDICE
Festo GDCP-CMXR-C2-ST-ES 1002NH 7
8.7 Lectura de datos estadísticos ............................................................................ 91
8.7.1 Módulo RCTR_ReadStatistic ............................................................... 91
8.8 Preparación de señales en el PLC ....................................................................... 94
8.8.1 Módulo RCTR_LagCompensator ......................................................... 95
8.8.2 Módulo RCTR_SignalInfo .................................................................... 97
8.8.3 Módulo RCTR_SmoothingFilter ........................................................... 98
8.8.4 Módulo RCTR_DynLimitFilter .............................................................. 99
8.9 Mensajes de los módulos ................................................................................ 100
8.9.1 Errores del sistema (errores graves) ................................................. 100
8.9.2 Error ................................................................................................. 102
8.9.3 Advertencia ...................................................................................... 105
8.9.4 Informaciones .................................................................................. 108
8.10 Integración de detectores ................................................................................ 109
9. Aplicaciones de seguimiento lineal ................................................................... 110
9.1 Creación de programas FTL .............................................................................. 110
9.2 Aplicaciones con un sistema transportador ...................................................... 110
9.2.1 Tratamiento de objetos iguales, sin clasificación .............................. 110
9.2.2 Tratamiento de objetos iguales, con clasificación ............................. 111
9.2.3 Modificación del sistema de referencia ............................................. 113
9.2.4 Depositar el objeto en la cinta en la posición correcta ...................... 114
9.2.5 Alinear objetos en la cinta en la posición correcta ............................ 115
1. Introducción
8 Festo GDCP-CMXR-C2-ST-ES 1002NH
1. Introducción Este documento describe el paquete tecnológico Tracking y sirve para la programación de aplicaciones translatorias de seguimiento en sistemas transportadores y funciones generales de seguimiento con el control robótico CMXR. Al hacerlo es posible coordinar y sincronizar movimientos de una cinemática con movimientos lineales de instalaciones de transporte.
La figura siguiente ilustra una estructura básica de una aplicación de seguimiento que consta de una cinemática, un armario de mando y un sistema transportador lineal.
Importante
Para utilizar el uso del paquete tecnológico Tracking es imprescindible que el usuario esté familiarizado con el lenguaje de programación FTL (Festo Teach Language) y la programación PLC con CoDeSys. Si se utiliza un sistema de visión deben observarse la documentación y las instrucciones correspondientes.
2. Medidas de seguridad
Festo GDCP-CMXR-C2-ST-ES 1002NH 9
2. Medidas de seguridad
2.1 Uso de la documentación
Este documento está concebido para los usuarios y programadores de robots que funcionan con el sistema CMXR de Festo. Contiene una introducción al manejo y a la programación. La formación correspondiente del personal es condición previa indispensable.
2.2 Uso conforme a lo previsto
Advertencia
El sistema CMXR de Festo no está diseñado para tareas de control relacionadas con la seguridad (p. ej., parada en caso de emergencia o control de velocidades reducidas).
Conforme a EN13849-1, el sistema CMXR de Festo es sólo de categoría B y, por tanto, no es suficiente para realizar funciones de seguridad de protección del personal. Para problemas de control relativos a la seguridad o para la seguridad de las personas deberán aplicarse medidas de protección externas que garanticen un estado operativo seguro del sistema completo, incluso en caso de fallo.
En caso de producirse daños como consecuencia de la no observancia de las indicaciones de advertencia, Festo no asume ninguna responsabilidad.
Importante
Lea enteros los capítulos Medidas de seguridad 2.3 y ss. antes de la puesta en marcha.
Si la documentación en el idioma presentado no se entiende a la perfección, diríjase al proveedor y notifíqueselo.
El funcionamiento perfecto y seguro del sistema de mando requiere un transporte, almacenamiento, montaje e instalación en condiciones adecuadas y profesionales, así como un esmerado manejo y mantenimiento.
2. Medidas de seguridad
10 Festo GDCP-CMXR-C2-ST-ES 1002NH
2.3 Personal cualificado
Importante
Los trabajos en los equipos eléctricos únicamente pueden ser llevados a cabo por personal debidamente formado y cualificado.
2.4 Medidas de seguridad de los productos
Advertencia
¡PELIGRO!
Observe las disposiciones en materia de eliminación de residuos especiales al eliminar las baterías gastadas.
Aunque las baterías son de baja tensión, en caso de cortocircuito pueden liberar suficiente corriente como para hacer arder materiales inflamables. Por tanto, no deben eliminarse junto con materiales conductores (como, p. ej., virutas de hierro, lana de acero sucia de aceite, etc.).
ESD
Elementos sensibles a las descargas electrostáticas: estos componentes pueden dañarse si no se manejan correctamente.
Advertencia
¡PELIGRO!
¡Movimientos peligrosos!
Peligro de muerte, lesiones graves y daños materiales por movimiento accidental de los ejes.
2.5 Medidas de seguridad de este manual
Advertencia
¡PELIGRO!
La inobservancia puede tener como consecuencia daños materiales y lesiones físicas graves.
Precaución
La inobservancia puede tener como consecuencia daños materiales graves.
2. Medidas de seguridad
Festo GDCP-CMXR-C2-ST-ES 1002NH 11
2.6 Medidas de seguridad para el producto descrito
Advertencia
¡Peligro!
Peligro de muerte por equipos de parada de emergencia insuficientes.
Los equipos de PARADA DE EMERGENCIA deben mantener su eficacia y estar siempre al alcance en todos los modos de funcionamiento de la instalación. El desbloqueo del equipo de PARADA DE EMERGENCIA no debe provocar ningún rearranque incontrolado.
Antes de la conexión debe comprobarse la cadena de PARADA DE EMERGENCIA.
Advertencia
¡PELIGRO!
Peligro para el personal y el material.
Pruebe todos los programas nuevos antes de poner en marcha la instalación.
Advertencia
¡PELIGRO!
La instalación posterior de componentes y las modificaciones del sistema pueden reducir la seguridad.
Ello puede provocar lesiones físicas y daños materiales o ambientales graves. Por tanto, para la instalación posterior de componentes o las modificaciones de la instalación con accesorios de equipo de otros fabricantes debe contarse con la autorización de Festo.
Advertencia
¡PELIGRO!
Peligro por alta tensión.
Los trabajos de mantenimiento deben efectuarse siempre, si no se indica lo contrario, con la instalación desconectada. Para ello, la instalación debe asegurarse contra la reconexión no autorizada o involuntaria.
Si es necesario realizar trabajos de medición o de comprobación en la instalación, éstos deberán ser efectuados por un electricista.
Precaución
Sólo deben utilizarse repuestos autorizados por Festo.
3. Hardware
12 Festo GDCP-CMXR-C2-ST-ES 1002NH
3. Hardware El paquete tecnológico Tracking requiere el uso del control CMXR del tipo CMXR-C2.
Imagen del control robótico CMXR-C2:
3.1 Encoder
Para lanzar una aplicación de seguimiento se requiere una estructura especial de hardware. Para determinar la posición de las piezas a seguir se necesita un feedback en forma de una señal de encoder. Para ello el control CMXR-C2 debe estar dotado de un módulo de expansión de encoder con el código de producto CECX-2G2.
La tarjeta del encoder tiene 2 entradas, cada una de las cuales se puede utilizar para un sistema transportador. En caso de más de 2 sistemas transportadores (máx. 4) es necesaria otra tarjeta de encoder.
Importante
Para el montaje de la tarjeta del encoder debe observarse el manual de hardware de CXMR.
El módulo CECX-2G2 dispone de entradas de encoder para los tipos de señal TTL 5 V y 24 V. El encoder utilizado debe cumplir esta especificación. Si el accionamiento del sistema transportador está equipado con un accionamiento Festo de la serie CMMx
(p. ej. CMMP-AS o CMMS-AS), se puede utilizar la salida de encoder del regulador del accionamiento.
En los capítulos siguientes se describe la ocupación de clavijas de las conexiones del encoder.
X2: Encoder 1
X3: Encoder 2
3. Hardware
Festo GDCP-CMXR-C2-ST-ES 1002NH 13
3.1.1 Conexión del encoder mediante accionamiento CMMx de Festo
La salida se emulación de encoder del regulador de accionamiento trabaja con niveles de señal TTL de 5V. A continuación se describe la ocupación de clavijas de las entradas y salidas correspondientes.
Señal Regulador de accionamiento CMMx
Tarjeta de encoder CECX-2G2
A+ 1 5
A- 6 9
B+ 2 4
B- 7 8
N+ 3 3
N- 8 7
GND, 0 V 4 1
Apantallamiento 9 -
Conector Sub-D 9 pines, tipo clavija Sub-D 9 pines, tipo clavija
Tabla 3.1 Ocupación de clavijas de la conexión del encoder CMMX
Importante
Para evitar averías, al poner el apantallamiento debe tenerse en cuenta el sistema de puesta a tierra utilizado.
Para hacer funcionar la tarjeta de encoder con la señal TTL de 5V, es necesario realizar el ajuste correspondiente en la configuración de la tarjeta del módulo. La imagen siguiente
representa la configuración dentro del software FCT.
Selección del
tipo de señal 5V
Evaluación cuádruple
Activar entrada latch
Ajustar el tipo de
entrada conforme a
la documentación
3. Hardware
14 Festo GDCP-CMXR-C2-ST-ES 1002NH
Para utilizar la emulación de encoder del regulador de accionamiento, ésta se debe activar en la configuración del dispositivo correspondiente. La figura siguiente muestra la activación de la emulación de encoder dentro de la configuración del controlador de motor CMMP-AS.
Después de activar la emulación del encoder, es necesario ajustar la resolución de ésta (número de impulsos = número de incrementos por cada revolución). Aquí debe ajustarse el valor máximo 16384. La figura siguiente muestra el ajuste de la resolución de encoder dentro de la configuración de CMMP-AS.
Activar la simulación de encoder
Seleccionar el punto de menú Datos de aplicación
Aparece el menú Simulación de encoder
Ajuste de la resolución
3. Hardware
Festo GDCP-CMXR-C2-ST-ES 1002NH 15
3.1.2 Encoder estándar con señales de 5 V o de 24 V
Si se utiliza un encoder general, éste se podrá utilizar con los tipos de señales 5 V o 24 V. A continuación se describe la ocupación de clavijas de la tarjeta de encoder CECX-2G2 con los tipos de señal 5 V y 24 V.
Señal CECX-2G2, señal de 24 V CECX-2G2, señal de 5 V
A+ 5 5
A- - 9
B+ 4 4
B- - 8
N+ 3 3
N- - 7
GND, 0V 1 1
Apantallamiento - -
Alimentación de encoder 5V - 6
Alimentación de encoder 24 V 2 -
Conector Sub-D 9 pines, tipo clavija Sub-D 9 pines, tipo clavija
Tabla 3.2 Ocupación de clavijas de la tarjeta de encoder CECX-2G2
Importante
Para evitar averías, al poner el apantallamiento debe tenerse en cuenta el sistema de puesta a tierra utilizado.
Para hacer funcionar la tarjeta de encoder con el tipo de señal existente, es necesario realizar el ajuste correspondiente en la configuración de la tarjeta del módulo.
La imagen siguiente representa la configuración dentro del software FCT.
Importante
La resolución del encoder debe ser como mínimo de 2.000 impulsos por revolución. Para aumentar la resolución es necesario ajustar la evaluación cuádruple en la configuración de la tarjeta del encoder.
Selección del tipo de
señal 5 V o 24 V
Evaluación cuádruple
Activar entrada latch
Ajustar el tipo de
entrada conforme a
la documentación
3. Hardware
16 Festo GDCP-CMXR-C2-ST-ES 1002NH
3.2 Detección de objetos
Para ejecutar una detección de objetos es necesario un detector adecuado. Se puede utilizar un detector sencillo con una salida digital, o bien el Vision System de Festo. Para sincronizar la detección de objetos con los sistemas transportadores es necesaria una conexión del detector con la entrada latch de la tarjeta de encoder CECX-2G2. La figura siguiente muestra las conexiones de detectores.
La tarjeta del encoder dispone de 2 entradas latch. La entrada DI0 funciona en relación con la entrada de encoder X2, y la entrada DI1 con la entrada del encoder X3.
3.2.1 Conexión de un detector digital
Si se utiliza un detector digital, p. ej. una barrera de luz, para la detección de objetos, éste se debe conectar a la entrada latch correspondiente de la tarjeta del encoder.
En la siguiente figura se muestra la conexión de un detector digital en la entrada latch DI0.
Importante
Al conectar el detector digital deben observarse las disposiciones de conexión del manual de hardware de la tarjeta del encoder.
Alimentación de 24 V
Entrada latch DI0 para encoder X2
Entrada latch DI1 para encoder X3
I
Cinta transportadora
Conexión del encoder con X2
Conexión con la entrada latch DI0
3. Hardware
Festo GDCP-CMXR-C2-ST-ES 1002NH 17
3.2.2 Conexión de Festo Vision
Si se utiliza el sistema de visión de Festo, para la sincronización de objetos es necesario conectar la salida del flash del sistema de visión con la salida latch de la tarjeta del encoder. La transmisión de datos tiene lugar a través de Ethernet.
Conexión a través de Ethernet
Recomendamos utilizar un switch Ethernet inteligente para reducir al máximo la carga de la red. La conexión con el sistema de visión y, p. ej., con una unidad de mando manual, así como con otro control CMXR, debería realizarse a través del puerto de Ethernet X5 para establecer una red local. El puerto de Ethernet X7 también se puede utilizar, pero está previsto para la conexión de redes remotas porque dispone de una dirección de Gateway.
Configuración de Festo Vision
Tenga en cuenta la documentación correspondiente para configurar el sistema de visión. Para utilizar la salida del flash del sistema de visión, en la configuración debe configurarse
la salida digital como “iluminación externa”.
I
Cinta transportadora
Conexión con la entrada latch DI0
Conexión del encoder con X2
Ethernet switch
Puerto de Ethernet X5
CMXR-C2
4. Software
18 Festo GDCP-CMXR-C2-ST-ES 1002NH
4. Software El paquete tecnológico Tracking está incluido en el correspondiente Plugin FCT CMXR-C2. Éste se puede descargar en la zona de descargas de la página de Festo en Internet www.Festo.com. Con la instalación del Plugin FCT el sistema operativo del control CMXR, que contiene el software del paquete tecnológico Tracking, está disponible y se puede cargar en el hardware CMXR-C2.
Para poner en funcionamiento el control CMXR, primero es necesario inicializar la tarjeta de memoria con el sistema operativo. Esto se puede realizar a través de una conexión de Ethernet activa o con un lector de tarjetas.
El modo de proceder para la inicialización puede consultarse en la ayuda del software FCT.
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 19
5. Función general de seguimiento
La función general de seguimiento describe el seguimiento de uno o varios ejes independientes con una cinemática. El modo en que se pueden seguir los movimientos depende de los grados de libertad de movimiento de la cinemática. A este movimiento se le pueden superponer otros movimientos de la cinemática para procesar la pieza, p. ej. el llenado de compuesto de sellado.
5.1 Modo de funcionamiento
La función de seguimiento se activa en el programa FTL. Para ello se accede a un sistema de referencia que se calcula en el PLC y recibe los valores de él. El PLC pone 8 sistemas de referencia a disposición, que pueden utilizarse para el seguimiento. A través de un área de memoria común el PLC puede intercambiar los datos de los sistemas de referencia con el control de movimiento.
La siguiente gráfica ilustra la estructura del control de movimiento y PLC:
Para activar el seguimiento es necesario activar el sistema de referencia en movimiento en el programa FTL con el comando SetRefSysDyn. Para suministrar valores al sistema de referencia, en el PLC se preparan, p. ej. los valores del encoder, y se añaden al sistema de referencia a través de módulos del sistema. Las funciones necesarias para ello están descritas en las páginas siguientes.
Sistema de ejes en movimiento (eje de seguimiento)
Sensor de posición, p. ej. encoder
Programa
PLC
PLC
PLC
Control de procesos (PLC) Control de movimiento
CMXR-C2
Cinemática
X = 100, Y = 10
Memoria común
Sistemas de referencia
X = 13, Y= -56, A= 34,5
I M
I I
5. Función general de seguimiento
20 Festo GDCP-CMXR-C2-ST-ES 1002NH
5.2 Programación FTL
En FTL el usuario dispone de variables para los marcos de seguimiento, que son necesarios para crear un sistema de referencia. Éstos se encuentran en el área de variables compartida del sistema. El suministro de esta variable con valores debe activarse en el PLC. Mediante módulos del sistema el PLC puede escribir estas variables FTL.
Sintaxis
FrameInterface : ARRAY [8] OF FRAMEITF
Esta variable es un tipo de dato estructurado que contiene la posición cartesiana y la orientación (según Euler ZYZ) para la posición de seguimiento.
Estructura del tipo de dato FRAMEITF
Variable Tipo Significado Utilización
x MAPTO REAL Desplazamiento, coordenada X [mm] read only
(sólo lectura)
y MAPTO REAL Desplazamiento, coordenada Y [mm] read only
(sólo lectura)
z MAPTO REAL Desplazamiento, coordenada Z [mm] read only
(sólo lectura)
a MAPTO REAL Desplazamiento, coordenada A [Grados] read only
(sólo lectura)
b MAPTO REAL Desplazamiento, coordenada B [Grados] read only
(sólo lectura)
c MAPTO REAL Desplazamiento, coordenada C [Grados] read only
(sólo lectura)
itfActive MAPTO BOOL El flag indica que las coordenadas son escritas por el PLC. read only
(sólo lectura)
Tabla 5.1 Estructura del tipo de dato FRAMEITF
En el programa FTL las variables sólo pueden ser leídas. No es posible escribir las variables.
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 21
5.3 Relaciones de los sistemas de referencia
La siguiente figura representa los sistemas de referencia. Para simplificar, el eje de seguimiento en movimiento de la figura está representado como sistema lineal, pero también puede tratarse de un eje de rotación o de combinaciones.
El sistema base para el movimiento de seguimiento está relacionado, p. ej., con el sistema
WORLD. Este sistema base representa el punto cero del movimiento de seguimiento. Si se activa el seguimiento, el sistema de referencia en movimiento tendrá el mismo alcance que el sistema base de seguimiento. En base al eje de seguimiento en movimiento, el PLC calcula el sistema de referencia en movimiento y se desplaza al
sistema base de seguimiento.
5.3.1 Iniciar seguimiento, sistema de referencia en movimiento, SetRefSysDyn
Como ampliación de los sistemas de referencia estáticos existentes en la programación FTL, existe el comando SetRefSysDyn para definir un sistema de referencia dinámico
(en movimiento). Este sistema de referencia en movimiento es necesario para realizar la función de seguimiento.
Para proporcionar valores al sistema de referencia, es necesario lanzar programas en el PLC interno. El PLC es responsable del cálculo de los valores del sistema de referencia.
Sintaxis
SetRefSysDyn(<refSys> : REFSYSVAR)
Parámetro Significado Unidad
refSys Sistema de referencia que recibe valores a través del PLC
interno.
Unidades de longitud y de
ángulo
Tabla 5.2 Parámetro del comando SetRefSysDyn
La utilización del macro SetRefSysDyn se tratará en los siguientes capítulos sobre el tema seguimiento.
Sistema base de seguimiento
I M
I I
X
Y
Z
X
Y
Z
X
Y
Z
Sistema de referencia, p. ej. WORLD
Sistema de referencia en movimiento
FrameInterface
Eje de seguimiento
5. Función general de seguimiento
22 Festo GDCP-CMXR-C2-ST-ES 1002NH
Estructura del tipo de dato REFSYSVAR:
baseRefSys : REFSYS Referencia al sistema base para el seguimiento
frame : FRAMEITF Referencia a un área de datos de los valores de desplazamiento
Con el parámetro baseRs puede indicarse otra referencia, la cual tiene efecto aditivo en el sistema de referencia. Para relacionar el sistema de coordenadas de la cinemática con el sistema de coordenadas universales, se debe efectuar una referenciación con la variable de sistema world.
Precaución
Si se activa el sistema de referencia de seguimiento, posteriormente todos los comandos de movimiento cartesianos se referirán a este sistema de referencia en movimiento.
Para activar el seguimiento, es necesario ejecutar un comando cartesiano de
desplazamiento después de la llamada del sistema de referencia. Sólo con dicho comando se realizará la sincronización con el movimiento de seguimiento.
Ejemplo:
Datos:
refTrack : REFSYSVAR := (MAP(baseTrack),FrameInterface[0]))
Programa:
:
SetRefSysDyn(refTrack)
// ejecutar en modo de seguimiento
Lin(pos1)
Lin(pos2)
:
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 23
5.3.2 Detener seguimiento
Para detener el seguimiento es necesario activar el sistema de referencia estático, como p. ej. WORLD. Esto se puede llevar a cabo con los macros de FTL SetRefSys, SetRefSys3P o SetRefSysWorld. No obstante, para transmitir el movimiento de seguimiento a un sistema estático es necesario un comando cartesiano adicional de desplazamiento en el sistema de referencia estático. El movimiento sincronizado será transmitido al sistema de referencia estático.
Ejemplo:
:
SetRefSysDyn(refTrack)
// ejecutar en modo de seguimiento
Lin(pos1)
Lin(pos2)
:
// cancelar el modo de seguimiento
SetRefSysWorld()
// otro comando de ejecución para detener el seguimiento
Lin(home)
5.3.3 Intercambio de información con el PLC
Si es necesario un handshake para el desarrollo en el programa FTL con el PLC,
pueden utilizarse para ello todas las variables de interface, p. ej. plc_InDint. La definición es responsabilidad de la programación de la aplicación.
Ejemplo: esperar a un valor determinado del transportador
El PLC escribe la variable de interface plc_InDint[3] cíclicamente con el valor del transportador. En la programación FTL, esa variable es comprobada con una instrucción WAIT. Si el transportador contiene el valor correspondiente, se activará el seguimiento en FTL con el comando SetRefSysDyn.
:
Lin(pos1)
// esperar hasta que el sistema transportador esté en posición
230
WAIT plc_InDint[3] >= 230
SetRefSysDyn(refTrack)
Lin(pos2)
:
5. Función general de seguimiento
24 Festo GDCP-CMXR-C2-ST-ES 1002NH
Ejemplo: inicio del seguimiento desde el PLC
Según el mismo principio de la detección del sistema transportador, también es posible realizar un inicio del seguimiento a través del interface de variables independientemente del transportador. En el ejemplo se utiliza la variable plc_InDint[5] como fuente de información para el arranque.
:
Lin(pos1)
// esperar hasta el inicio
WAIT plc_InDint[5] = 1
SetRefSysDyn(refTrack)
Lin(pos2)
:
I M
I I
X
Y
Z
X
Y
Z
Sistema de referencia en movimiento
Sistema de ejes en movimiento
Sistema base de seguimiento = punto cero
plc_VarDint[3] =StartValue
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 25
5.4 Programación de PLC
Para utilizar la función de seguimiento es necesario crear secuencias de programa en el PLC para proporcionar valores a los sistemas de referencia correspondientes. Los módulos necesarios para ello se encuentran en la biblioteca de CoDeSys RcTracking.lib.
5.4.1 Módulo RCTR_UpdateFrameInterface, actualizar sistema de referencia
Con el módulo RCTR_UpdateFrameInterface los sistemas de referencia disponibles, como máximo 8, son escritos con valores desde el PLC. Para que la función de seguimiento funcione correctamente es necesario activar el módulo en la tarea “MotionTask”, que se debe activar cíclicamente con el MotionTimer.
Importante
Según la calidad de la señal de posición puede ser necesario
prepararla o filtrarla adecuadamente antes de la utilización. Para ello existen bloques funcionales en la biblioteca RcSignalProcessing.lib.
Datos de entrada
Variable Tipo Significado
Enable BOOL Activar el módulo
FrameNumber DINT Índice del Framesystem del PLC
X, Y, Z REAL Posición cartesiana [mm]
A, B, C REAL Orientación cartesiana [Grados]
Tabla 5.3 Datos de entrada del módulo RCTR_UpdateFrameInterface
5. Función general de seguimiento
26 Festo GDCP-CMXR-C2-ST-ES 1002NH
Enable : BOOL
Con esta señal se activa el módulo, debe ser estática.
FrameNumber : DINT
Número del área de Framedata. Margen de valores de 0 a 7.
X, Y, Z : REAL
Coordinadas del desplazamiento en la unidad mm.
A, B, C : REAL
Coordinadas de la orientación a partir del método de Euler ZYZ, en la unidad grados.
Datos de salida
Variable Tipo Significado
Active BOOL Módulo activo
Error BOOL Datos de entrada no válidos
ErrorID TMCE_ErrorID Número de error
AnyProgramActive BOOL Un programa FTL está activo
AnyTrackingActive BOOL Seguimiento activo
ThisTrackingActive BOOL Este sistema de referencia está activo
Tabla 5.4 Datos de salida del módulo RCTR_UpdateFrameInterface
Active : BOOL
Módulo activo. Es la retroseñal de la entrada Enable.
Error : BOOL
Señal común, si es = TRUE entonces hay un error. El número de error correspondiente puede consultarse en la salida error iD.
ErrorID : TMCE_ErrorID
Valor de retorno del número de mensaje. Este valor sólo es válido cuando la salida error posee el estado TRUE. Los números de mensajes están definidos en McUtils.lib.
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 27
Número de mensaje Significado
0 No hay errores
10001 eMCE_FatalErrMappingFailed
10002 eMCE_FatalErrNullPointer
10003 eMCE_FatalErrDiffMemSize
10005 eMCE_FatalErrMissingCfgParam
10100 eMCE_FatalErrWriteShMem
10203 eMCE_ErrTrackInvalidFrameItf
Tabla 5.5 Números de mensajes del módulo RCTR_UpdateFrameInterface
AnyProgramActive : BOOL
El estado = TRUE indica que hay un programa FTL activo.
AnyTrackingActive : BOOL
Hay una operación de seguimiento activa, es decir, el sistema de referencia activado actualmente es un sistema de referencia en movimiento.
ThisTrackingActive : BOOL
Este sistema de referencia (del puerto indicado) está activo en la operación de seguimiento.
5. Función general de seguimiento
28 Festo GDCP-CMXR-C2-ST-ES 1002NH
5.5 Aplicaciones
En este capítulo se describen ejemplos de aplicaciones y combinaciones de sistemas transportadores. Este capítulo no pretende ser una exposición completa y veraz.
5.5.1 Introducir piezas en un molde
En el presente ejemplo debe colocarse una pieza para insertar en un molde de inyección. En el molde, no obstante, se encuentra un sacamachos que debe extraerse primero para poder entrar en el molde sin colisiones. Para ahorrar tiempo de ciclo, la cinemática debe entrar con la pieza para insertar de forma sincronizada con el sacamachos que debe salir. Para ello el sacamachos dispone de un sistema de medición con el que se puede determinar la posición del sacamachos. Ahora con la función de seguimiento se puede
seguir el avance del sacamachos.
Estructura esquemática de la aplicación:
Sacamachos
Molde de inyección
Pieza para insertar
Cinemática
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 29
Ejemplo:
En el ejemplo siguiente se utilizan las siguientes variables:
plc_InDint[5], es la variable de comando para arranque y parada. Esta variable es escrita por el PLC, al principio se borra en el programa FTL.
plc_InDint[6], valor de referencia para el PLC, qué distancia del eje de seguimiento se debe seguir.
Tras el inicio se activa el seguimiento en el programa FTL. El PLC abastece el marco de datos del sistema de referencia hasta que se alcance la distancia de la variable plc_OutDint[6]. Después interrumpe el seguimiento con el valor = 2 en la variable
plc_InDint[5].
:
// distancia de seguimiento
plc_OutDint[6] := 346
Lin(pos1)
// esperar hasta el inicio
WAIT (plc_InDint[5] = 1)
SetRefSysDyn(refTrack)
// orden de ejecución para activar seguimiento
Lin(pos2)
WAIT (plc_InDint[5] = 2)
SetRefSysWorld()
// comando de ejecución para detener el seguimiento
Lin(pos3)
:
Importante
En caso de detener el seguimiento debe tenerse en cuenta que a causa de los tiempos de reacción y de las rampas de frenado de la dinámica ajustada, no se puede detener exactamente en la posición deseada del transportador.
5. Función general de seguimiento
30 Festo GDCP-CMXR-C2-ST-ES 1002NH
5.5.2 Seguimiento de movimientos en una prensa plegadora
Una cinemática con 2 ejes lineales y un eje manual está instalada como sistema de manipulación en una prensa plegadora. La cinemática debe insertar una pieza de chapa en la prensa plegadora con una posición definida. En el proceso de plegado, cuando el sello de la prensa se pone en marcha, la cinemática debe seguir el plegado de la pieza de chapa y mantenerlo continuo. Después del proceso de plegado la prensa se abre y la chapa puede posicionarse para otro proceso.
En la figura siguiente se muestra el proceso:
Para el seguimiento de la herramienta de plegado y de la cinemática en el plegado, la cinemática se sincroniza mediante un sistema de medición en la prensa plegadora para el movimiento de plegado. Para ello en el canto de plegado de la pieza se define un
sistema de referencia:
Prensa plegadora
Cinemática
X
Z
X
Z
Sistema de medición del recorrido
S
S
Estado de salida:
Cinemática posición de inserción Prensa plegadora arriba
Estado final:
Cinemática en posición final de plegado Prensa plegadora abajo
Sistema de medición del recorrido
X
Z
Y
Posición del sello para iniciar seguimiento
Sistema de coordenadas para el seguimiento
X
M
e
m
o
5. Función general de seguimiento
Festo GDCP-CMXR-C2-ST-ES 1002NH 31
5. Función general de seguimiento
32 Festo GDCP-CMXR-C2-ST-ES 1002NH
Desarrollo:
La pieza está insertada.
La prensa empieza el recorrido.
Cuando la prensa ha alcanzado la pieza se activa el seguimiento.
El sello de la prensa presiona la pieza en la matriz de plegado, simultáneamente y condicionado por el seguimiento, el sistema de referencia se desplaza en la dirección Z. Asimismo, en función de la profundidad y del ángulo de plegado el sistema de referencia rota alrededor del eje Y. Este desplazamiento del sistema de referencia es calculado por el PLC interno y conducido al control de movimiento.
La cinemática se desplaza automáticamente a la posición final mediante el sistema de referencia en movimiento.
Ejemplo de programa FTL:
En el siguiente ejemplo de FTL el PLC activa y detiene el seguimiento a través de la variable plc_InDint[3]. Para poder calcular la rotación del sistema de referencia es necesario que el PLC conozca el ángulo de plegado de la matriz de plegado.
:
// avanzar a posición de inicio
Lin(StartPos)
// esperar hasta el inicio de PLC
WAIT (plc_InDint[3] = 1)
// activar el sistema de referencia
SetRefSysDyn(TrackAxis1)
// orden de ejecución para activar seguimiento
Lin(pos1)
// proceso de plegado en marcha
// esperar hasta el inicio de PLC
WAIT (plc_InDint[3] = 2)
// seguimiento desconectado
SetRefSysWorld()
// salir de la prensa, depositar pieza
Lin(pos3)
:
6. Seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 33
6. Seguimiento lineal Esta función de seguimiento sirve para sincronizar el movimiento de la cinemática con un objeto en movimiento, p. ej. una pieza, en una cinta transportadora lineal. Los procesos necesarios para ello se crean en el lenguaje de programación FTL así como a través del PLC integrado (CoDeSys). Mediante un área común de memoria es posible intercambiar los datos necesarios entre los sistemas.
El seguimiento está concebido de forma que el PLC es el único encargado de la gestión de piezas. También asume la responsabilidad. Esto significa que el PLC se encarga de memorizar y borrar los objetos mientras que el control de movimiento se ocupa de
procesarlos.
La gráfica siguiente muestra la relación entre el control de movimiento y el control de proceso:
Desarrollo:
La posición del sistema transportador es detectada y gestionada por el PLC.
El PLC se encarga, además, del control de los sensores para la detección de objetos, p. ej. una cámara o una barrera de luz. Ahora los objetos se clasifican o seleccionan dentro del programa PLC según se requiera y son conducidos al control de movimiento a través de un interface interno.
Sistema transportador
Objetos
Detección de objetos, p. ej. con una cámara o barrera de luz
Sensor de posición, p. ej. encoder
Cinemática
Programa
PLC
PLC
PLC
Control de procesos (PLC) Control de movimiento
CMXR-C2
ID = 13
Memoria común
Objetos
ID = 47
6. Seguimiento lineal
34 Festo GDCP-CMXR-C2-ST-ES 1002NH
El control de movimiento memoriza dichos objetos en una memoria interna de objetos. Mediante el programa FTL es posible acceder a la memoria de objetos y prácticamente activar un objeto individual. La cinemática sigue al objeto, que, p. ej., puede ser tomado por el sistema transportador.
Importante
Para lanzar una aplicación de seguimiento es necesario crear programas tanto en el control de movimiento como en el control de proceso (PLC).
6.1 Sistemas transportadores
El sistema transportador desplaza los objetos por el espacio operativo de la cinemática. Para detectar la ubicación y la posición de los objetos es necesario instalar un detector, p. ej. una barrera de luz o un sistema de cámaras, antes del espacio operativo. El número máximo de sistemas transportadores dentro de un control CMXR está limitado a 4.
Importante
Como sistemas transportadores se admiten únicamente sistemas lineales cuya dirección positiva del movimiento discurra a lo largo del eje cartesiano X positivo de la cinemática.
6.1.1 Combinaciones de sistemas transportadores
Las figuras siguientes muestran posibles combinaciones con dispositivos de transporte de distintas características:
Un transportador físico con varias pistas de piezas, cada pista tiene su propio detector
de piezas:
M Detectores para la detección de piezas
6. Seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 35
4 transportadores físicos:
6.1.2 Punto cero
Para la estructura de la aplicación existe un punto cero común para todos los sistemas implicados que poseen un sistema de coordenadas. Esto significa que las cinemáticas y la sensórica, p. ej. la barrera de luz o el sistema de visión se deben calibrar con este punto cero común.
M
M
M M
Espacio operativo de la cinemática
Sistema de coordenadas de la cinemática
Punto cero común en el transportador
6. Seguimiento lineal
36 Festo GDCP-CMXR-C2-ST-ES 1002NH
6.1.3 Orientación
En el caso ideal, el plano del sistema transportador es vertical respecto al eje cartesiano Z de la cinemática. No obstante, es necesario dimensionar y ajustar el sistema transportador.
Importante
En función de la aplicación, el plano del transportador debe alinearse exactamente en el plano X-Y de la cinemática. Las discrepancias pueden influir en las posiciones de sujeción o incluso ocasionar daños en la herramienta y el objeto.
Importante
Como sistemas transportadores se admiten únicamente sistemas lineales cuya dirección positiva del movimiento discurra a lo largo del eje cartesiano X positivo de la cinemática.
6.2 Sistema de encoder, longitud de cinta, posición de detector
Con la señal del encoder se determinan la posición y la velocidad de los objetos. Esta señal es decisiva para un buen comportamiento de la trayectoria. Para obtener una precisión correspondiente es necesario observar lo siguiente:
La distancia entre la posición del detector y el espacio operativo de la cinemática debe ser lo más pequeña posible.
La detección de la posición de la cinta, p. ej. mediante un encoder, debe reproducir con mucha precisión el recorrido de la cinta.
Si los sistemas transportadores no son elásticos, es conveniente integrar el encoder entre el espacio operativo de la cinemática y la posición del detector. De este modo la posición de la cinta se detecta directamente.
6. Seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 37
6.3 Memoria de objetos, protocolo de objetos
Para memorizar los objetos, cada sistema transportador dispone de 2 áreas de memoria:
Memoria de objetos con 16 posiciones como máximo
Protocolo de objetos con 1.024 posiciones, ejecutado como memoria intermedia circular.
Memoria de objetos
La memoria de objetos puede alojar como máximo 16 objetos. Recibe los datos del PLC. El programa FTL puede acceder a la memoria mediante los métodos correspondientes y puede procesar los objetos. Esta memoria es el interface de objeto entre el PLC y el programa FTL. Si no se aplica ninguna llamada selectiva de los objetos, entonces la
llamada de los objetos se realiza según el principio “First In First Out”. Esto significa que el primer objeto enviado por el PLC es el primero que se procesará. Opcionalmente es posible tomar los objetos selectivamente mediante un atributo.
Protocolo de objetos
El protocolo de objetos dispone de 1.024 posiciones de objetos. Cuando un objeto abandona la memoria de objetos, p. ej. porque ha sido procesado, entonces será desplazado automáticamente al protocolo de objetos. Si es necesario, el PLC ahora puede leer el objeto y seguir procesándolo. Dado que la memoria se ha implementado como memoria intermedia circular, al alcanzar 1.024 objetos se sobreescriben los primeros.
El programa FTL no tiene acceso al protocolo de objetos.
Sistema transportador Objetos
Detector, p. ej. con cámara
Cinemática
Distancia lo más pequeña posible
Sistema transportador
Encoder con rodillo
prensor sobre la cinta
Ejemplo de detección de posición de la cinta en
espacio operativo:
6. Seguimiento lineal
38 Festo GDCP-CMXR-C2-ST-ES 1002NH
6.4 Tratamiento de los objetos
Para poder procesar los objetos individuales es necesario conocer la ubicación y la posición del objeto. Estos datos son transmitidos por el PLC a la memoria de objetos. Para que el control de movimiento pueda aproximarse a estos objetos, cada uno de ellos recibe un sistema de referencia propio que contiene los datos del objeto; esto significa que el origen del sistema de referencia se determina a partir de los datos del objeto.
Además, estos objetos son desplazados por el sistema transportador. Esta posición del sistema transportador, que se calcula cíclicamente, se suma ahora a los sistemas de
referencia de cada uno de los objetos dentro del control de movimiento. De este modo se conoce y asegura la posición de los objetos en el sistema transportador.
Al activar el sistema de referencia de un objeto, el control del movimiento, gracias a funciones internas, puede seguir y procesar el objeto en movimiento.
Importante
Los objetos están referidos a un sistema de referencia definido en el sistema transportador. El sistema de referencia se debe disponer de modo que el eje X positivo del sistema de referencia señale en la dirección positiva del transportador.
Si una posición de objeto es determinada, p. ej., por un sistema de cámaras, entonces debe ser determinada de forma relativa al sistema de referencia definido.
La figura siguiente muestra objetos en un sistema transportador:
Importante
Cada sistema transportador tiene su propia memoria de objetos. Ésta puede alojar como máximo 16 objetos, que se activan mediante el PLC. Si el control de movimiento procesa y desbloquea objetos, el PLC podrá transmitir otros objetos.
Sistema de referencia del
transportador
Dirección positiva del transportador = eje X positivo del sistema de referencia de transporte
Sistema de referencia de
un objeto
Y
X
X
X
Y
Y Y
Y
6. Seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 39
6.4.1 Seguimiento de objetos
Cuando se activa el sistema de referencia de un objeto (desde los datos del objeto) dentro del programa FTL como sistema dinámico, entonces se activa automáticamente el seguimiento. La cinemática sigue al objeto según la posición del sistema de referencia dinámico. Si ahora se inicia un comando cartesiano de desplazamiento, éste será válido dentro del sistema de referencia del objeto, que ahora está activo.
Dado que el sistema de referencia del objeto es un sistema de referencia dinámico, para la activación es necesario utilizar el macro de FTL SetRefSysDyn.
Ejemplo:
:
SetRefSysWorld()
Lin(WaitPos)
// activación del sistema de referencia de objetos = conectar
seguimiento
// ahora la cinemática se desplaza con el sistema transportador
SetRefSysDyn(part.RefSys)
// desplazamiento a posiciones en relación con el objeto en
movimiento
Lin(AbovePos)
Lin(TakePos)
Lin(AbovePos)
// activar un sistema de referencia estático = seguimiento
desconectado
SetRefSysWorld()
// orden de ejecución para activar sistema WORLD
Lin(WaitPos)
:
6. Seguimiento lineal
40 Festo GDCP-CMXR-C2-ST-ES 1002NH
6.5 Activación de los objetos
El PLC tiene como tarea detectar objetos y conducirlos a la memoria de objetos en el control CMXR. Este proceso está desacoplado del tratamiento de los objetos por el programa FTL.
Esto significa los siguiente:
Cuando hay posiciones disponibles en la memoria de objetos, el PLC puede enviar objetos.
Los objetos que no son procesados se borran automáticamente o bien por el PLC según la configuración; el PLC puede enviar objetos nuevos mediante las posiciones libres.
El programa FTL se puede iniciar en cualquier momento, y entonces procesa los objetos actuales en la memoria de objetos.
Importante
Si no es necesario que los objetos no procesados abandonen el espacio operativo de la cinemática, se puede detectar el estado a través del programa de usuario en el PLC y, p.ej., detener los sistemas transportadores.
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 41
7. Programación FTL de seguimiento lineal La programación de la función de seguimiento en FTL se basa en la utilización de módulos que deben ser instanciados.
7.1 Datos de objeto
Cada objeto posee datos que son necesarios para la identificación y el tratamiento del mismo. Dichos datos están resumidos dentro del tipo de dato estructurado TRACKOBJECT y son necesarios en los módulos y métodos para el tratamiento de los objetos.
Sintaxis
<name> : TRACKOBJECT := ( <id> : DINT,
<userId >: DINT,
< refSys >: REFSYSVAR,
< attribute> : DINT
< isReachable> : BOOL,
< hasLeftArea> : BOOL,
< workDistance> : REAL )
Variable Tipo Significado
id DINT ID de objeto para ser identificado por el sistema (uso interno)
userId DINT ID para ser identificado por el usuario
refSys REFSYSVAR Sistema de referencia en movimiento de un objeto
attribute DINT Atributos del objeto
isReachable BOOL Indica que el objeto es alcanzable
hasLeftArea BOOL El objeto ha salido del espacio operativo
workDistance REAL Posición del objeto en referencia al espacio operativo
Tabla 7.1 Tipo de dato PART
id : DINT (sólo lectura)
La id es una identificación del objeto para procesos internos del sistema. Se asigna internamente y no es relevante para el programa de usuario.
userId : DINT (sólo lectura)
El userId puede ser utilizada por el programa de usuario para identificar objetos. La gestión y asignación son realizadas por el programa de usuario en el PLC.
7. Programación FTL de seguimiento lineal
42 Festo GDCP-CMXR-C2-ST-ES 1002NH
refSys : REFSYSVAR (sólo lectura)
La variable RefSys contiene el sistema de referencia en movimiento. Éste recibe cíclicamente del PLC los valores adecuados para el encoder del transportador. Esta variable se utiliza en relación con el macro SetRefSysDyn para activar el seguimiento.
attribute : DINT (lectura / escritura)
Los atributos sirven para la clasificación del objeto. Éstos son activados por el PLC y se evalúan dentro del programa FTL, p. ej. para procesar una serie especial de objetos.
isReachable : BOOL (sólo lectura)
Esta variable booleana señaliza que el objeto se encuentra dentro de una zona en el
transportador. El PLC puede cambiar el límite de la zona. Si la cinta transportadora está parada, el límite de la zona es el límite de la zona de trabajo. No obstante, durante el funcionamiento es válido el límite de zona para objetos.
Esta variable se puede utilizar para detectar o para esperar hasta que la pieza se encuentre en la zona.
Precaución
Si se programa una secuencia de programa que no puede ser procesada en la ejecución principal, entonces el estado de los objetos en el momento de la ejecución del programa puede haberse modificado a causa del movimiento del transportador.
Ejemplo: :
IF partData.isReachable THEN
:
END_IF
:
WAIT partData.isReachable
:
hasLeftArea : BOOL (sólo lectura)
Indica que el objeto ha abandonado la zona de trabajo.
workDistance : REAL (sólo lectura)
Esta es la posición del objeto en el transportador en referencia al espacio operativo definido. La posición se puede utilizar, p. ej., para esperar hasta que un objeto se
encuentre como mínimo a una cierta distancia en el espacio operativo. Una posición < 0 indica que el objeto aún se encuentra antes de la zona de trabajo. Cuando la posición > 0 el objeto se encuentra detrás del inicio de la zona de trabajo.
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 43
Representación de las variables dentro del sistema de seguimiento:
Los parámetros de cada una de las zonas se describen en el capítulo siguiente.
X
Inicio de la zona de trabajo = minWorkArea
minWork Final de la zona para objetos = maxAcceptArea
Y
workDistance > 0
X
Y
hasLeftArea = TRUE isReachable = TRUE
workDistance < 0
Final de la zona de trabajo = maxWorkArea
7. Programación FTL de seguimiento lineal
44 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.2 Módulo CONVEYOR
El módulo CONVEYOR es la imagen de un sistema transportador en el control CMXR. Para definir el sistema transportador se necesita un sistema de referencia cuyo eje X positivo represente la dirección positiva del transportador. Además, en referencia al sistema de referencia indicado deben indicarse también el inicio y el final de la zona de trabajo de la cinemática en el sistema transportador. Otro parámetro es el final de la zona para el tratamiento de los objetos. Este valor determina hasta qué posición del objeto en el sistema transportador se procesará el objeto en el último momento.
Importante
El número máximo de sistemas transportadores está limitado a 4. Por lo tanto se pueden crear como máximo 4 módulos CONVEYOR.
La siguiente figura muestra los 3 parámetros en un sistema transportador.
Además de estos datos del espacio operativo, el módulo CONVEYOR necesita también una asignación a una memoria de objetos, cuyo número máximo está limitado a 4. A través de este interface se intercambian los datos de objetos entre el control de movimiento y el PLC.
X
X
X
X
Y
Y Y
Y
Sistema de referencia
del transportador
Zona de
tratamiento
Inicio de la zona de trabajo = minWorkArea
Final de la zona para objetos = maxAcceptArea
e la zona de trabajo = maxWorkArea
X
Fi
n
al
d X+, dirección positiva del transportador
Sistema de referencia
de un objeto
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 45
Instanciación
Al instanciar el módulo “CONVEYOR” se determina el nombre con el que se puede utilizar la función del seguimiento lineal en los programas FTL.
Instanciación
<nombre de instancia> : CONVEYOR( <interface> : MAPTO CONVITF,
<refSys> : MAPTO REFSYS,
<dataComplete> : BOOL
< minWorkArea> : REAL,
< maxAcceptArea> : REAL,
< maxWorkArea> : REAL )
Importante
En todos los proyectos FTL cargados actualmente sólo puede haber una instancia por cada “ConvInterface”.
Por ello se pueden instanciar como máximo 4 módulos CONVEYOR distintos simultáneamente.
Ejemplo de instanciación en el archivo de datos (*.tid):
Conv1 : CONVEYOR := (MAP(ConvInterface[0]), MAP(trackBase),
TRUE, 800, 1280, 1310)
Variable para la instanciación
Variable Tipo Significado
interface MAPTO CONVITF Variable del sistema como referencia para la memoria de objetos
refSys MAPTO REFSYS Sistema base de referencia, todas las posiciones o los sistemas
de referencia se refieren a este sistema
dataComplete BOOL Variable interna de datos que no puede ser modificada
minWorkArea REAL Coordenada X del inicio de la zona de trabajo
maxWorkArea REAL Coordenada X del final de la zona de trabajo
maxAcceptArea REAL Coordenada X, final de la zona en la que se procesan objetos.
Tabla 7.2 Variables del módulo CONVEYOR
7. Programación FTL de seguimiento lineal
46 Festo GDCP-CMXR-C2-ST-ES 1002NH
interface : MAPTO CONVITF
El índice describe una remisión al área de la memoria en la que están depositados los datos de objetos. Cada transportador posee un área de la memoria propia. Están disponibles 4 áreas como máximo.
Para la conexión con las memorias de objetos están disponibles 4 variables del sistema que se deben utilizar para la asignación:
Variable del sistema Significado
ConvInterface[0] Memoria de objetos 1
ConvInterface[1] Memoria de objetos 2
ConvInterface[2] Memoria de objetos 3
ConvInterface[3] Memoria de objetos 4
Tabla 7.3 Variable del sistema memoria de objetos
refSys : MAPTO REFSYS
Este es el sistema de referencia estático del sistema transportador. Es importante que la dirección del transportador siempre señale hacia la dirección positiva X. Si, p. ej., se ha
integrado un sistema de cámaras para la detección de objetos, es necesario asegurarse de que éste está calibrado con el mismo sistema de referencia.
minWorkArea, maxWorkArea, maxAcceptArea : REAL
Estos 3 parámetros describen el inicio y el final de la zona de trabajo de la cinemática, referidos al sistema de referencia del sistema transportador. El parámetro maxAcceptArea es el límite de zona en la que se pueden procesar objetos. El límite debe ajustarse en relación con la velocidad del transportador y los movimientos necesarios para el seguimiento, p. ej. elevar objeto, de modo que la cinemática no alcance las posiciones finales. Este límite debe determinarse mediante ensayos.
En la gráfica de la página 44 se muestran las variables.
Métodos
El módulo CONVEYOR dispone de los siguientes métodos:
Métodos Descripción
Begin Iniciar tratamiento
End Finalizar tratamiento
Wait Esperar al siguiente objeto
WaitReachable Esperar a que el objeto esté en posición alcanzable
Done Acuse de recibo de tratamiento de objeto finalizado
Tabla 7.4 Métodos del módulo CONVEYOR
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 47
7.2.1 Método iniciar/detener el tratamiento, <Begin, End>
El método Begin pone en el interface del PLC la salida RcActive del módulo RcConveyor en TRUE (ver capítulo 8.4 Módulo RCTR_UpdateConvInterface en la página 77). Indica al PLC que el control de movimiento está listo. El método End pone esta variable en FALSE. Si se desean otras acciones es necesario programarlas en el PLC.
La utilización de Begin y End no es necesaria para la función de seguimiento y no influye en ella. Sirve sólo como información para algunas funciones en el programa PLC.
Sintaxis
<nombre de instancia>.Begin( )
<nombre de instancia>.End( )
Ejemplo:
:
// señal al PLC activar seguimiento
Conv1.Begin()
:
Lin(pos1)
:
// señal al PLC terminar seguimiento
Conv1.End()
:
Números de mensajes
Número Tipo Id de mensaje Causa Valor de retorno
1165 Error eRcErrorVarNotMapped La función ha sido activada sin que el módulo haya sido conectado antes a un interface Conveyor.
-
Tabla 7.5 Mensajes de métodos Begin y End
7. Programación FTL de seguimiento lineal
48 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.2.2 Método de esperar al próximo objeto <Wait>
Con este método se lee el siguiente objeto de la memoria que se encuentra en la primera posición. Si durante el tratamiento de objetos no es importante el orden, con este método se pueden procesar los objetos en el orden en que los ha enviado el PLC al control de movimiento.
Si actualmente no hay ningún objeto en la memoria, el programa FTL permanece inactivo hasta que el PLC envía otro objeto.
Sintaxis
<nombre de instancia>.Wait( object : TRACKOBJECT,
OPT attribute : DINT,
OPT distance : REAL):DINT
Variable Tipo Significado
object TRACKOBJECT Retorno de los datos de objeto
attribute DINT Valor opcional para un atributo
distance REAL Valor opcional para el recorrido de transporte
Tabla 7.6 Variables del método Wait
object : TRACKOBJECT
Retorno de la estructura de datos del próximo objeto, que ha sido seleccionado con el método Wait en base a las especificaciones.
attribute : DINT
Definición de atributos para la clasificación de objetos. Si se especifica un valor para este
parámetro opcional, se buscará en la lista el siguiente objeto que cumpla este atributo.
distance : REAL
Se mide la distancia que ha recorrido el transportador desde que se ha activado el comando Wait. Si la distancia medida es mayor que el valor indicado en el parámetro “distance” se interrumpirá el método. Con la llamada de Wait se mide el recorrido de transporte relativo al momento de la llamada. Si se sobrepasa esta distancia se interrumpirá el método Wait. Este estado se puede detectar a través del valor de retorno del método.
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 49
Números de mensajes, valores de retorno:
Número de mensaje
Tipo Id de mensaje Causa Valor de retorno
1165 Error eRcErrorVarNotMapped La función ha sido activada sin que el módulo haya sido conectado antes a un interface Conveyor.
2
1412 Error eMacroErrorNotInitialized El módulo de seguimiento no ha sido inicializado.
2
2559 Advertencia eMacroWarningTrackItfNotActive El interface de seguimiento no está activo en el lado del PLC.
-*)
2758 Advertencia eMacroWarnTrack-
WorkObjActive
La estructura de objeto transmitida contiene un objeto que aún está activo.
-
2760 Advertencia eMacroWarnInitTrackObjFailed No se ha podido crear el sistema de seguimiento
2
3785 Info eMacroInfoTrackWait-
DistExceeded
Distancia de espera máxima indicada excedida.
1
3786 Info eMacroInfoTrack-
WaitPLCAbort
El método ha sido interrumpido por el PLC.
1
*) - = no hay acuse de recibo
Tabla 7.7 Mensajes del método Wait
Modo de funcionamiento
Todos los objetos existentes están a disposición del control de movimiento en un área de memoria. El método Wait busca en dicha memoria el siguiente objeto que cumple las especificaciones y, dado el caso, los atributos.
La tabla siguiente muestra un ejemplo de estructura de memoria:
ID de usuario Desplazamiento Atributo
12 X = 132, Y= 45, A= 6,75 45
17 X= 34,5, Y=67, A= -34,8 79
39 X = 101,6, Y= 89,5, A= 0,8 79
17 X= 78,3, Y=34,6, A=-15,8 45
39 X= 49,2, Y=66,9, A= 45,7 45
Tabla 7.8 Estructura de la memoria
El elemento que está más arriba es el objeto más antiguo de la memoria. Con el método Wait, Begin busca siempre en la memoria hasta que encuentra un objeto que cumpla los requerimientos.
7. Programación FTL de seguimiento lineal
50 Festo GDCP-CMXR-C2-ST-ES 1002NH
Ejemplos:
Conv1.Wait(partData)
La llamada se realiza sin atributos. El método devuelve el objeto con la ID = 12.
Conv1.Wait(partData, 79)
Ahora, en función del atributo se busca qué objeto corresponde al atributo. En este caso el método devuelve el objeto con la ID = 17. Es el primer objeto de la memoria que cumple el atributo transmitido.
Conv1.Wait(firstPart, 45)
Conv1.Wait(nextPart, 45)
La primera llamada devuelve el objeto con el ID = 12, la siguiente llamada el objeto con el ID = 17. Cada objeto puede ser leído una sola vez.
Importante
Si se lee un objeto de la memoria con el método Wait, éste permanecerá en ella. La siguiente llamada de Wait accederá al objeto siguiente. El objeto leído antes no volverá a ser leído; si es necesario esto se debe definir en variables dentro del programa FTL.
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 51
7.2.3 Método de esperar hasta que el objeto sea alcanzable, <WaitReachable>
El método WaitReachable espera hasta que el objeto indicado se encuentre en la zona de tratamiento de la cinemática. Los datos de objeto necesarios deben ser leídos antes con el método Wait.
Sintaxis
<nombre de instancia>.WaitReachable( <object> : : TRACKOBJECT): DINT
Variable Tipo Significado
object TRACKOBJECT Datos de objeto que han sido determinados antes con Wait.
Tabla 7.9 Variables del método WaitReachable
object : TRACKOBJECT
Transferencia de los datos de objeto que han sido leídos antes con el método Wait.
WaitReachable funciona como la instrucción WAIT en el programa FTL. Existen 2 casos:
En el avance de proceso se detecta que el objeto es alcanzable
Si en el avance del cálculo del programa se detecta que hay un objeto alcanzable, el método finaliza inmediatamente y la ejecución del programa continúa. Por lo tanto es posible un avance aproximado de posiciones individuales.
El objeto no es alcanzable en el proceso principal
Si la ejecución principal del proceso del programa alcanza el método WaitReachable sin que el objeto sea alcanzable, el proceso del programa se detendrá. Como resultado se detiene la cinemática. El avance de proceso se detendrá hasta que el objeto se encuentre
en la zona de trabajo.
7. Programación FTL de seguimiento lineal
52 Festo GDCP-CMXR-C2-ST-ES 1002NH
Mensajes, valores de retorno:
Número Tipo Id de mensaje Causa Valor de retorno
1165 Error eRcErrorVarNotMapped La función ha sido activada sin que el módulo haya sido conectado antes a un interface Conveyor.
2
1412 Error eMacroErrorNotInitialized El módulo de seguimiento no ha sido inicializado.
2
2559 Advertencia eMacroWarningTrackItfNotActive El interface de seguimiento no está activo en el lado del PLC.
-*)
3787 Info eMacroInfoTrack-WaitReachPLCAbort
El método ha sido interrumpido por el PLC.
1
*) - = no hay acuse de recibo
Tabla 7.10 Mensajes del método WaitReachable
Como alternativa al método WaitReachable también se puede utilizar para la verificación y la espera la variable booleana isReachable, que se encuentra en los datos de objeto leídos.
Importante
Si un objeto todavía no se encuentra en la zona de tratamiento de la cinemática, ésta se puede posicionar previamente en el principio de la zona de trabajo. Con la variable isReachable se puede leer el estado del objeto.
Ejemplo:
En el siguiente ejemplo se posiciona previamente la cinemática ya en el principio de la zona de trabajo, dado que el objeto aún no es alcanzable. :
Lin(Pos)
Conv1.Wait(partData)
IF NOT partData.isReachable THEN
// determinar la posición Y
waitPos.y := partData.refsys.y
// posición X principio de la zona de trabajo
waitPos.x := 580
Lin(waitPos)
END_IF
WAIT partData.isReachable
SetRefSysDyn(partData.refsys)
Lin(partPos)
:
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 53
Precaución
Si la variable isReachable se utiliza, p. ej., para bifurcaciones IF, es necesario observar que las instrucciones de este tipo se ejecuten en el avance del proceso del programa. En el momento de la ejecución principal podría haberse modificado el estado de la variable isReachable, sin embargo ésta ya no se tiene en cuenta en la ejecución principal.
7. Programación FTL de seguimiento lineal
54 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.2.4 Método terminar objeto, <Done>
Para identificar un objeto como procesado se utiliza el método Done. Mediante la llamada se retira el objeto transmitido de la memoria de objetos interna y ya no se puede utilizar. Esto significa que el sistema de referencia de este objeto ya no es válido y por lo tanto ya no se puede utilizar. Después de la llamada de Done, el objeto se copia con todos sus datos en la memoria de protocolo implementada en el lado del PLC. Si es necesario, dichos datos se puede utilizar para otro procesamiento en el PLC.
Al ejecutar el método Done, automáticamente se guardan en los datos de objeto la
posición del objeto en relación con el transportador así como un registro de tiempo con la fecha y la hora. Éste podrá ser leído y procesado por el PLC.
Importante
Mediante la llamada de Done se guardan internamente datos del objeto, como p.ej. la posición del sistema transportador, la fecha y la hora. Estos datos servirá para una posterior diagnosis. Por este motivo el método Done se debe llamar muy rápidamente para que los datos obtenidos sean lo más actuales posible.
Sintaxis
<nombre de instancia>.Done( <object> : TRACKOBJECT,
OPT <state> : BOOL)
Variable Tipo Significado
object TRACKOBJECT Datos de objeto del objeto respectivo
state BOOL Valor de retorno del tratamiento
Tabla 7.11 Variables del método WaitReachable
object : TRACKOBJECT
Datos del objeto.
state : BOOL
Con el parámetro opcional State se puede activar un estado del tratamiento. Éste se deposita en el estado del objeto y se puede seguir procesando en el lado del PLC. Véase el capítulo 8.3.1 Tipo de dato de objeto TRCTR_OBJECT en la página 67.
TRUE Objeto procesado con éxito
FALSE El tratamiento no ha tenido éxito.
Si no se especifica este parámetro opcional, entonces siempre se activará el valor TRUE para este objeto y será transmitido como estado al PLC.
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 55
Mensajes posibles:
Número Tipo Id de mensaje Causa Valor de retorno
1165 Error eRcErrorVarNotMapped La función ha sido activada sin que el módulo haya sido conectado antes a un interface Conveyor.
-*)
1783 Error eMacroErrorTrackInvalidObject La función ha sido llamada con datos de objeto no válidos
-
1784 Error eMacroErrorTrackFrameNotMapped Los datos de seguimiento del objeto no son válidos.
-
2559 Advertencia eMacroWarningTrackItfNotActive En el lado del PLC el interface Conveyor no está activo.
-
*) - = no hay acuse de recibo
Tabla 7.12 Mensajes del método Done
Importante
No se permite una llamada a Done mientras el sistema de referencia del objeto esté activo. Para que los datos de objeto se puedan borrar de la memoria de objetos, antes de la llamada a Done es necesario activar otro sistema de referencia.
Ejemplo:
:
Lin(Pos)
Conv1.Wait(partData)
// sistema de referencia del objeto
SetRefSysDyn(partData.refsys)
Lin(AbovePartPos)
Lin(TakePos)
Vacuum.Set()
Lin(AbovePartPos)
// nuevo sistema de referencia
SetRefSysWorld()
// borrar objeto
Conv1.Done(partData)
:
7. Programación FTL de seguimiento lineal
56 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.3 Páginas de visualización del módulo Conveyor
Si un proyecto se ha cargado con un módulo Conveyor, con la tecla de la unidad de mando manual es posible abrir una página de visualización del módulo Conveyor. En esta página se pueden observar y modificar datos.
Importante
Sólo es posible modificar datos cuando no se ha cargado ningún programa con función de seguimiento. La visualización de los datos es posible siempre.
Al acceder a la pantalla de visualización aparece la página de configuración del módulo Conveyor. Utilizando las softkeys es posible ver otras pantallas.
Imagen de la página de configuración:
Significado de las softkeys:
Página de configuración
Memoria de objetos
Protocolo de objetos
Diagnosis de piezas
Página de estadísticas
Tecla de páginas
de visualización
Página de
visualización del
seguimiento
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 57
7.3.1 Página de configuración
La página de configuración del módulo Conveyor contiene los parámetros del módulo así como otros datos que sirven para la visualización y no pueden ser modificados.
Imagen de la página de configuración:
Número Modificable Variable del módulo
Significado
1 Sí Interface Interface para la memoria interna de objetos
2 Sí refSys Sistema de referencia del transportador
3 Sí minWorkArea Inicio de la zona de trabajo, en referencia al punto cero del
transportador.
4 Sí maxWorkArea final de la zona de trabajo, en referencia al punto cero del
transportador.
5 Sí maxAcceptArea Última posición para procesar objetos, en referencia al punto
cero del transportador.
6 No - Módulo de seguimiento listo
7 No iftActive Módulo activado a través del PLC
Tabla 7.13 Datos de la página de configuración
3
1
7
2
4
5
6 Selección de la instancia del módulo
7. Programación FTL de seguimiento lineal
58 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.3.2 Memoria de objetos
En esta página se visualizan 16 posiciones de memoria de la memoria interna de objetos. La descripción de la memoria de objetos se encuentra en el capítulo 6.3
Memoria de objetos, protocolo de objetos en la página 37.
La visualización de la memoria de objetos abarca 8 objetos.
Mediante las teclas y se accede a los demás objetos.
Nombre de la columna Significado
Idx Índice del objeto en la memoria de objetos de 0 hasta 15.
UserID Identificador del usuario, asignado por el programa PLC mediante el módulo
RCTR_AddObject.
Attribute Atributos de objeto activados por el programa de usuario PLC.
Actpos Posición actual del objeto en el sistema transportador, en referencia al punto
cero del transportador.
State Estado actual del objeto, éste puede modificarse en cualquier momento.
X Posición cartesiana X al detectar el objeto.
Y Posición cartesiana Y al detectar el objeto.
S Orientación según Euler, rotación alrededor del eje Z al detectar el objeto.
Tabla 7.14 Significado de las columnas de la memoria de objetos
Los datos de las columnas X, Y y Z son los valores de posición del objeto durante su detección, p. ej. a través de un sistema de visión.
Selección de la instancia del módulo Ver otros objetos
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 59
7.3.3 Protocolo de objetos
En esta página se visualiza el protocolo de objetos con sus 1.024 registros de datos que contienen el historial de los objetos procesados. La descripción del protocolo de objetos se encuentra en el capítulo 6.3 Memoria de objetos, protocolo de objetos en la página 37.
Las siguientes softkeys sirven para la navegación:
Visualización de los 8 objetos más antiguos, el que está más abajo es el más
antiguo
Visualización a partir del objeto más reciente
Retroceder de página en página
Avanzar de página en página
Visualizar el objeto más reciente, con actualización automática de la visualización.
Nombre de la columna Significado
Idx Índice del objeto en la memoria de objetos de 0 hasta 15.
Time Tiempo registrado en el que se realizó la entrada.
UserID Identificador del usuario, asignado por el programa PLC mediante el módulo
RCTR_AddObject.
Attribute Atributos de objeto activados por el programa de usuario PLC.
Endp. Posición del transportador, en el que se ha activado el estado del objeto como
procesado
State Estado del objeto al realizar la entrada en el protocolo de objetos.
X Posición cartesiana X al detectar el objeto.
Y Posición cartesiana Y al detectar el objeto.
S Orientación según Euler, rotación alrededor del eje Z al detectar el objeto.
Tabla 7.15 Significado de las columnas del protocolo de objetos
Selección de la instancia del módulo Introducción manual del índice de inicio de la visualización
7. Programación FTL de seguimiento lineal
60 Festo GDCP-CMXR-C2-ST-ES 1002NH
7.3.4 Diagnosis de piezas
La página de la diagnosis de pieza muestra los datos del último objeto procesado, así como los valores mínimos y máximos de todos los objetos procesados.
Se visualizan el valor mínimo y máximo de:
velocidad del transportador,
promedio de objetos procesados por minuto,
valor de posición X, Y y A con el UserID correspondiente.
Esta imagen se puede utilizar para la diagnosis de los datos de posición de la detección de
piezas. La velocidad del transportador se determina mediante el valor promedio de los últimos 10 valores reales.
Reponer los valores visualizados:
La velocidad del transportador se repone mediante el flanco ascendente en la entrada Enable del módulo RCTR_UpdateConvInterface a través del PLC. La reposición de los datos de objeto se realiza en cada reset de estadística a través del módulo RCTR_ReadStatistic, que también se activa desde el PLC.
Selección de la instancia del módulo
Último objeto procesado
Valor mín./máx. de X, Y y A con UserID
correspondiente
Valores del transportador y objetos procesados por
minuto
7. Programación FTL de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 61
7.3.5 Página de estadísticas
En los datos estadísticos se representan los datos de los objetos. Con esta página de visualización se pueden realizar registros, p. ej. para examinar los efectos de optimizaciones de procesos. Con la softkey se puede restablecer el registro. El registro estadístico a largo plazo que se encuentra en el PLC no resulta afectado.
Selección de la instancia del módulo
Objetos recibidos
Objetos procesados
Objetos no procesados
Objetos activos que
están en espera y en tratamiento.
8. Programación PLC de seguimiento lineal
62 Festo GDCP-CMXR-C2-ST-ES 1002NH
8. Programación PLC de seguimiento lineal Este capítulo describe la programación del PLC en base a CoDeSys V 2.3 para la aplicación de seguimiento con sistemas transportadores lineales. Hallará más información sobre la programación del PLC en la documentación correspondiente.
Para crear una aplicación de seguimiento está disponible la biblioteca de módulos RcTracking.lib.
8.1 Modo de funcionamiento
El control CMXR-C2 dispone de una Shared Memory (memoria compartida), a la que puede acceder el control del proceso y el control de movimiento (Robotic Control = RC). Con módulos, el PLC puede copiar objetos a esta Shared Memory. En el caso ideal, el PLC dispone de una memoria propia de objetos en la que se guardan objetos, que son detectados, p. ej., por un sistema de cámaras. Esta memoria de objetos debe crearse de forma individual y adaptada a la aplicación.
La suma de las memorias de objetos en la Shared Memory es 4. Cada memoria de objetos puede alojar como máximo 16 objetos. Si el control de movimiento procesa y borra objetos, el PLC podrá copiar otros objetos en esta memoria.
Precaución
Para que la función de seguimiento funcione correctamente es necesario activar los módulos en la tarea “MotionTask”, para que sean actualizados cíclicamente con el MotionTimer. Si estos módulos se asignan a otra tarea, la función de seguimiento no estará operativa. La necesidad de la asignación a la “MotionTask” se debe consultar en la descripción de los módulos individuales.
PLC
Programa FTL Shared
Memory
Control de movimiento
Módulo del sistema
emoria propia de objetos
M
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 63
8.1.1 Tareas del PLC
El PLC es responsable de la gestión de piezas por completo. Esto significa que el PLC es responsable de:
enviar los datos de objetos a la memoria de objetos,
borrar opcionalmente los datos de objetos de la memoria de objetos,
leer el estado de objetos en la memoria de protocolo o de objetos.
configurar opcionalmente una estadística en el programa de usuario.
Para detectar objetos es necesario integrar en el programa de usuario la conexión con una
sensórica, p. ej. una barrera de luz o un sistema de cámaras. En caso necesario deberá instalarse una gestión de piezas de los objetos detectados.
Importante
Para manejar la función de seguimiento desde el PLC existen módulos. Éstos se encuentran en la biblioteca RcTracking.lib.
8.1.2 Contenido de la biblioteca RcTracking.lib
La siguiente tabla muestra los módulos de la biblioteca RcTracking.lib.
Nombre del módulo Significado
RCTR_UpdateFrameInterface Actualización del sistema de referencia dinámico
RCTR_UpdateConvInterface Módulo en la unidad de transporte
RCTR_AddObject Escribir objetos en la memoria
RCTR_RemoveObject Borrar objetos de la memoria
RCTR_ReadBuffer Leer memoria de objetos
RCTR_ReadLog Leer protocolo de objetos
RCTR_GetLog Leer un objeto determinado del protocolo de objetos
RCTR_GetLatestLog Leer automáticamente un objeto del protocolo
RCTR_ResetData Borrar la memoria
RCTR_ReadStatistic Leer datos estadísticos
Tabla 8.1 Módulos de la biblioteca RcTracking.lib
En los capítulos siguientes se describen todos los módulos. Únicamente la descripción del modulo RCTR_UpdateFrameInterface se encuentra en el capítulo 5.4.1 Módulo RCTR_UpdateFrame en la página 25.
8. Programación PLC de seguimiento lineal
64 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.2 Gestión de objetos
La gestión de los objetos se realiza en 2 memorias de piezas:
memoria de objetos para piezas activas que están en tratamiento
protocolo de objetos para piezas ya procesadas.
Cada Conveyor posee una memoria propia de piezas. Los datos de objetos se gestionan dentro de una estructura de datos.
Importante
El sistema facilita 4 sistemas transportadores. Cada sistema transportador posee una propia memoria de objetos con 16 objetos así como una memoria de protocolo para un máximo de 1.024 objetos.
Objeto 1
Objeto 2
Objeto 3
Objeto …
Objeto 16
Memoria de objetos
Memoria de objetos para el tratamiento de 16 objetos como
máximo. Procesar objetos
mediante el programa FTL
Objeto 1
Objeto 2
Objeto 3
Objeto …
Objeto 1.024
Protocolo de objetos
El sistema transmite automáticamente los
objetos al protocolo de objetos
Insertar objetos desde el PLC
Leer protocolo de objetos por el PLC
Posible visualización de estadística
Protocolo de objetos para archivar
1.024 objetos como máximo
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 65
8.2.1 Tratamiento de objetos con borrado automático de los objetos
Existe una opción para que el control CMXR borre automáticamente los objetos procesados o los que se han desplazado del espacio operativo. Este comportamiento se define a través de la entrada ManualRemoveObjects del módulo RCTR_UpdateConvInterface. Al poner la entrada en FALSE se activa esta función.
Este modo de proceder es conveniente cuando los objetos no son interesantes para un uso posterior, p. ej. porque el sistema transportador posee una retroalimentación de los objetos o una cinemática postconectada posee una sensórica propia para una nueva
detección de objetos.
El programa PLC debe tener la siguiente estructura:
Envío de los objetos con el módulo RCTR_AddObject
Posible lectura de estadística, memoria de objetos y protocolo de objetos para diagnosis y visualización
No es posible utilizar el módulo RCTR_RemoveObjekt.
8. Programación PLC de seguimiento lineal
66 Festo GDCP-CMXR-C2-ST-ES 1002NH
La gráfica siguiente representa el desarrollo del borrado automático de objetos. El software implicado está marcado con colores.
Debido al programa FTL, no es necesario que el orden de lectura de los objetos con CONVEYOR.Wait sea idéntico al orden en que éstos han sido añadidos por el módulo RCTR_AddObject.
Objeto 1
Objeto 2
Objeto 3
Objeto ….
Objeto 16
Memoria de objetos
Leer objeto CONVEYOR.Wait
Activar estado de objeto procesado
CONVEYOR.Done
Añadir objeto RCTR_AddObject
Objeto 1
Objeto 2
Objeto 3
Objeto ….
Objeto 1.024
Protocolo de objetos
Activar estado de objeto fuera de la zona de trabajo
Comprobar si los objetos han sido
procesados o
proceden de la zona de trabajo.
Borrar objetos de la memoria y copiarlos
en el protocolo.
Leer memoria de objetos
Leer protocolo de objetos
Visualización de estadística
Sensórica para detección de objetos
Gestión interna de objetos
Programa de usuario PLC
Función del sistema
Programa de usuario FTL
Significado de los colores:
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 67
8.2.2 Tratamiento de objetos con borrado manual de los objetos
La gráfica siguiente representa el desarrollo del borrado manual de objetos (a través del programa de usuario PLC). El software implicado está marcado con colores.
El tratamiento posterior de los objetos que se han desplazado fuera de la zona de trabajo se puede ejecutar, p. ej., de modo que los objetos regresen a la gestión interna de objetos del programa de usuario y sean puestos a disposición de otra cinemática.
Objeto 1
Objeto 2
Objeto 3
Objeto ….
Objeto 16
Memoria de objetos
Leer objeto CONVEYOR.Wait
Activar estado de objeto procesado
CONVEYOR.Done
Añadir objeto RCTR_AddObject
Objeto 1
Objeto 2
Objeto 3
Objeto ….
Objeto 1.024
Protocolo de objetos
Activar estado de objeto fuera de la zona de trabajo
Comprobar los objetos con RCTR_GetLatestLog
Borrar objetos de la memoria con el módulo
RCTR_RemoveObject, copia automática en el protocolo.
Leer memoria de objetos
Leer protocolo de objetos
Visualización de estadística
Sensórica para detección de objetos
Gestión interna de objetos
Programa de usuario PLC
Función del sistema
Programa de usuario FTL
Significado de los colores:
Objeto procesado
Objeto fuera de la zona de
trabajo
8. Programación PLC de seguimiento lineal
68 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.3 Datos de objetos, memoria de objetos
Para procesar los datos de objetos individuales, éstos se guardan dentro de una estructura de datos. Esta estructura se utiliza para los módulos descritos a continuación.
8.3.1 Tipo de dato de objeto TRCTR_OBJECT
Variables de estructura del tipo de dato TRCTR_OBJECT:
Variable Tipo Significado
id DINT Identificación del objeto
userId DINT Identificación del usuario
state TRCTR_ObjectState Estado del objeto
logDate DATE Fecha de acabado del tratamiento
logTime TIME Hora de acabado del tratamiento
detectionPos DINT Posición del transportador en la detección
donePos REAL Posición del objeto al recibir mensaje de acabado
pos TRCTR_CartFrame Posición del objeto
attribute DWORD Atributo del objeto
workAreaReserve REAL Reserva de espacio operativo
Tabla 8.2 Tipo de dato TRCTR_OBJECT
Id : DINT
Identificación para fines internos. Este valor se asigna internamente y el usuario no puede modificarlo.
userId : DINT
Número de identificación para el objeto, que es definido y asignado por el usuario.
Esta identificación no se utiliza internamente en el sistema y sólo tiene significado para el usuario. Es recomendable utilizar esta Id sólo una vez dentro de la memoria de objetos (16 objetos) y del protocolo de objetos (1.024 objetos).
state : TRCTR_ObjectState
Retorno del estado de objeto. El estado del objeto se presenta en forma de enumeración. Los estados posibles están descritos en el capítulo 8.3.2 Estado de objeto en la página 70.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 69
logDate : DATE, logTime : TIME
Estas dos variables contienen la fecha y la hora del momento en que se ha comunicado que el objeto está terminado.
detectionPos : DINT
Valor del encoder en incrementos en el momento de la detección del objeto.
donePos : REAL
Posición del objeto en la cinta transportadora en el momento en que en el programa FTL se
ha llamado al método Done. Este valor se puede utilizar, p. ej., para determinar en qué zona del transportador se han procesado piezas. Esto es útil, p. ej., para regular la velocidad del transportador y descargar la cinemática adecuadamente.
pos : TRCTR_CartFrame
Posición cartesiana y orientación del objeto en la detección.
Variables de estructura del tipo de dato TRCTR_CartFrame:
Variable Tipo Significado
x, y, z REAL Posición cartesiana
a, b, c REAL Orientación cartesiana
Tabla 8.3 Tipo de dato TRCTR_CartFrame
Esta estructura se utiliza para indicar la posición de un objeto en relación con el origen de la detección de piezas. X es la dirección positiva del movimiento de la cinta transportadora, Y es la posición transversal a la dirección del movimiento y Z es la altura sobre la cinta transportadora.
Si se detectan nuevos objetos mediante un detector (p.ej. barrera de luz), la posición típica
del objeto es 0 (los 6 elementos de TRCTR_CartFrame son 0). Si se utiliza una cámara, normalmente es posible determinar X, Y y A (rotación alrededor de Z).
Debe observarse que las orientaciones (A, B y C) se indican en forma de X, Y, Z conforme al istema derecho. Además, las orientaciones se deben indicar a partir del método de Euler ZYZ.
Importante
Si se requiere una rotación del objeto alrededor de Z y la cinemática utilizada posee 4 grados de libertad de movimiento, entonces la rotación se debe indicar en A y no en C. En función de los 4 grados de libertad de movimiento, en la unidad de mando manual se visualizará sólo A.
8. Programación PLC de seguimiento lineal
70 Festo GDCP-CMXR-C2-ST-ES 1002NH
attribute : DWORD
Atributos del objeto. Éstos, p. ej., se pueden definir mediante un sistema de cámaras o escribir desde el PLC según un esquema especial. En la programación FTL se puede acceder a este atributo y seleccionar objetos de la memoria si es necesario.
workAreaReserve : REAL
Indicación de la reserva del espacio operativo de objetos. Esta indicación de valor es porcentual y se refiere al punto de agarre (CONVEYOR.Done) en la zona desde CONVEYOR.minWorkArea hasta CONVEYOR.maxWorkArea.
8.3.2 Estado de objeto TRCTR_ObjectState
Cada objeto de la memoria posee un estado que está memorizado en los datos de objetos. La siguiente tabla contiene los estados posibles.
Enumeración Valor Significado
eRCTR_ObjectStateUnknown 0 Estado del objeto desconocido
eRCTR_ObjectStateSuccess 1 Objeto procesado con éxito, borrado de la memoria
eRCTR_ObjectStateError 2 Objeto no procesado con éxito, borrado de la memoria
eRCTR_ObjectStateLeftArea 3 El objeto ha salido de la zona de trabajo sin ser
procesado, borrado de la memoria
eRCTR_ObjectStateRejected 4 El objeto ha sido rechazado por el control
(fallo interno del tratamiento de objetos).
eRCTR_ObjectStateDoneError 11 Llamada al método Done con estado = FALSE,
no procesado con éxito
eRCTR_ObjectStateLeftAreaDetected 12 El objeto ha salido de la zona de trabajo sin ser
procesado
eRCTR_ObjectStateLeftArea 13 El objeto ha salido de la zona de trabajo sin ser
procesado, pero todavía se encuentra en la memoria de
objetos
eRCTR_ObjectStateUnprocessed 14 El objeto ha sido rechazado por el control
(fallo interno del tratamiento de objetos), pero todavía se
encuentra en la memoria de objetos.
eRCTR_ObjectStateWaiting 20 El objeto está listo y aún no ha sido recogido con el
método Wait.
eRCTR_ObjectStateWorking 21 El objeto ha sido recogido con el método Wait y está en tratamiento
eRCTR_ObjectStateInRestrArea 22 El objeto se encuentra en la zona entre MaxAcceptArea y
MaxWorkArea
Tabla 8.4 Estado de objeto TRCTR_ObjectState
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 71
8.3.3 Añadir objeto, módulo RCTR_AddObject
Con el módulo RCTR_AddObject se escriben datos de objetos en la memoria de objetos. La detección de piezas se debe programar por separado.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente se aceptan los datos de objetos en la
memoria de objetos. Si no es posible registrar otro objeto,
p. ej. porque la memoria está llena, se indica un fallo con la
variable de salida error. Entonces la variable de salida contiene el
código de error correspondiente.
Object TRCTR_OBJECT Datos de objeto del nuevo objeto a crear.
Datos de salida
Done BOOL Si es = TRUE, entonces los datos de objetos han sido aceptados
correctamente en la memoria de objetos.
Error BOOL Si con la aceptación de los nuevos datos de objetos se emite un
error, esto se indicará mediante esta variable de salida (= TRUE).
ErrorId TMCE_ErrorID En caso de error (partError = TRUE), se visualizará un número error
con PartErrorId.
Tabla 8.5 Datos del módulo RCTR_AddObject
Para crear un objeto es necesario escribir los datos de la variable de entrada Object. Para ello es necesario dotar la siguiente variable del tipo de dato TRCTR_Object con los datos correspondientes:
userId
detectionPos
attribute
Todos los demás datos no son relevantes para añadir un objeto. Serán creados por el sistema o durante el tiempo de ejecución.
8. Programación PLC de seguimiento lineal
72 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_AddObject
Número de mensaje Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10260 eMCE_WarnTrackBufferFull
Tabla 8.6 Números de error del módulo RCTR_AddObject
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 73
8.3.4 Borrar objeto, módulo RCTR_RemoveObject
Con el módulo RCTR_RemoveObject se borran objetos individuales de la memoria de objetos. Los objetos que están siendo procesados (Status eRCTR_ObjectStateWorking) no se pueden borrar.
Importante
Si en el módulo RCTR_UpdateConvInterface la entrada ManualRemoveObjects se ha puesto en False, entonces los objetos que han sido procesados o que han abandonado el espacio operativo se borrarán automáticamente de la memoria. Por ello en este caso no es necesario borrarlos.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente se borra de la memoria el objeto
especificado.
Object TRCTR_OBJECT Para borrar el objeto correspondiente deben indicarse sus datos
de objeto.
Datos de salida
Done BOOL Si el borrado se ha realizado con éxito está señal está en TRUE.
Error BOOL Si al borrar el objeto se origina un error, este flag estará en TRUE.
ErrorId TMCE_ErrorID En caso de error (Error = TRUE), se visualizará un número error con
ErrorId.
Tabla 8.7 Datos del módulo RCTR_RemoveObject
8. Programación PLC de seguimiento lineal
74 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_RemoveObject
Número de error ErrorID
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10251 eMCE_WarnTrackBufferObjNotFound
10265 eMCE_WarnTrackRemoveActiveObject
Tabla 8.8 Números de error del módulo RCTR_RemoveObject
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 75
8.3.5 Leer datos de objeto, módulo RCTR_ReadBuffer
La gestión de los objetos para el tratamiento es tarea de la memoria de objetos. Esta memoria se escribe a través del PLC y el programa FTL la toma para el tratamiento posterior. La memoria de objetos puede gestionar 16 objetos como máximo.
La lectura de los datos de objetos de la memoria de objetos se controla a través del índice de la memoria. El margen de valores del índice va de 0 hasta 15.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente se lee el estado del objeto.
Índice DINT Acceso a una de las 16 posiciones de memoria de la memoria de
objetos, desde la que se deben leer los datos. Los valores válidos
van de 0 a 15.
Datos de salida
Done BOOL Con el flanco ascendente de la señal los datos de las salidas son
válidos y pueden ser procesados.
Error BOOL Hay un error.
ErrorId TMCE_ErrorID En caso de error (error = TRUE), se visualizará un número error con
errorId.
Object TRCTR_OBJECT Retorno de los datos de objeto.
Tabla 8.9 Datos del módulo RCTR_ReadBuffer
Importante
Si no se encuentra ningún objeto válido en la posición de la memoria indicada, en la variable Object.state se indicará el estado Unknown.
8. Programación PLC de seguimiento lineal
76 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ReadBuffer
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10204 eMCE_ErrTrackInvalidBufferIdx
Tabla 8.10 Números de mensajes del módulo RCTR_ReadBuffer
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 77
8.4 Sistema de transporte
8.4.1 Módulo RCTR_UpdateConvInterface
El módulo de CoDeSys RCTR_UpdateConvInterface activa un sistema transportador con su memoria de objetos y su memoria de protocolo. Sin la llamada al módulo y por lo tanto sin activación de un sistema transportador, ningún otro modulo puede acceder a las áreas de memoria.
Tareas del módulo:
Transmisión de la posición del transportador = posición del encoder
Definición de la unidad del transportador (p.ej. mm) mediante factores
Actualización cíclica de los objetos en la memoria de objetos con la posición actual del transportador.
Activación de funciones, p. ej. desbloqueo de la zona hasta el final del espacio
operativo.
La detección de piezas, p. ej. mediante un sistema de cámaras o una barrera de luz, así como la determinación de la posición del sistema transportador no es componente del
módulo y debe crearse por separado.
Importante
El tratamiento del módulo debe realizarse en MotionTask.
8. Programación PLC de seguimiento lineal
78 Festo GDCP-CMXR-C2-ST-ES 1002NH
Datos de entrada
Enable BOOL Con esta señal se activa el módulo. Debe ser estática. Si esta
señal tiene el valor = FALSE, en el programa FTL se podrá tomar
otro objeto con el método Wait(). Para un tratamiento de objeto
es obligatoriamente necesaria la señal Enable.
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de
objetos. El margen de valores permitido es de 0 a 3. 0 es el valor
para la primera memoria de objetos.
ConvPos DINT Aquí se especifica en incrementos la posición absoluta del
transportador. Los reboses se tienen en consideración
automáticamente en el módulo.
ConvResNum DINT Estos dos valores enteros determinan un factor para la
conversión de incrementos a la unidad deseada,
p. ej. milímetros. El cálculo se realiza con la división
ConvResNum / ConvResDenom. La división de los incrementos
por este factor da como resultado la unidad deseada.
ConvResDenom DINT
ManualRemoveObjects BOOL Si este flag está activado (= TRUE), los objetos procesados
(llamada al método Done en FTL) o los objetos que abandonan
la zona de trabajo deben ser borrados de la memoria de objetos
con el módulo RCTR_RemoveObject.
Si la entrada tiene el estado FALSE (ajuste estándar), los
objetos serán borrados de la memoria automáticamente por el
sistema.
AllowRestrictedArea BOOL Con este flag se desbloquea la zona desde detrás del límite de
aceptación hasta el final de la zona de trabajo. Por lo general,
lo activa el PLC durante una parada del transportador.
AbortWait BOOL Con el flanco ascendente se interrumpen todos los objetos en
espera que se encuentran en la memoria de objetos.
En el programa FTL los métodos Wait y WaitReachable del
módulo Conveyor indican el estado correspondiente.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 79
Datos de salida
Active BOOL Módulo activo. Es la retroseñal de la entrada Enable.
RcActive BOOL Si en el programa FTL se llama al método Begin, esta salida
tendrá el estado TRUE. Con la llamada al método End o el final
del programa FTL se repone esta salida. Esta información se
puede seguir procesando en el PLC si es necesario.
Error BOOL Cuando hay un error, este flag está en TRUE.
ErrorId TMCE_ErrorID En caso de error (partError = TRUE), se visualizará un número
error con PartErrorId.
AnyProgramActive BOOL Hay un programa FTL activo.
AnyTrackingActive BOOL Esta señal indica que la operación de seguimiento está activa.
Un sistema de referencia actualmente activo es un sistema en
movimiento (macro de FTL SetRefSysDyn).
ThisTrackingActive BOOL Un sistema de referencia gestionado por este módulo de
Conveyor controla el seguimiento.
RobWaitActive BOOL El programa FTL espera al próximo objeto con el método Wait.
RobWaitReachableActice BOOL El programa FTL espera con el método WaitReachable hasta
que el objeto seleccionado sea alcanzable.
WaitingObjects DINT Número de piezas en la memoria intermedia de piezas que
todavía no han sido leídas con el método Wait.
ActiveObjects DINT Número de piezas en la memoria de objetos que están en
tratamiento. Han sido leídas de la memoria en el programa FTL
con el método Wait. La llamada al método Done todavía no se
ha realizado.
BufferReady BOOL En la memoria de objetos todavía queda espacio para otro
objeto como mínimo. Mientras este flag posea el estado TRUE
se podrán escribir otros objetos en la memoria con el módulo
RCTR_AddObject.
ObjectInRestrictedArea BOOL Este flag indica que detrás del accept area se encuentra, como
mínimo, un objeto. La cinemática puede alcanzar este área,
pero no en la operación de seguimiento. Con esta señal se
puede detener el transportador si es necesario. Para recoger
las piezas es necesario desbloquear la zona con la entrada
allowRestrictedArea. Después de recoger las piezas de esta
zona se puede volver a poner en marcha el transportador.
ActLogIndex DINT Índice de la entrada más reciente en el protocolo de objetos.
Si el protocolo de objetos está vacío, este índice será -1.
Tabla 8.11 Datos del módulo RCTR_UpdateConvInterface
8. Programación PLC de seguimiento lineal
80 Festo GDCP-CMXR-C2-ST-ES 1002NH
Importante
En la suma de las variables WaitingObjects y ActiveObjects se aplica lo siguiente:
WaitingObjects + ActiveObjects <= 16
Croquis de la zona detrás del final de la zona para objetos y del final de la zona de trabajo. Cuando en esta zona se encuentra, como mínimo, un objeto, la variable de salida
ObjectInRestrictedArea tiene el estado TRUE.
X
X
X
X
Y Y
Y
Sistema de referencia del
transportador
Inicio de la zona de trabajo = minWorkArea
Final de la zona para objetos = maxAcceptArea
Final de la zona de trabajo = maxWorkArea
X
Y
X+, dirección positiva del transportador
ObjectInRestrictedArea = TRUE
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 81
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ConvInterfaceUpdate.
Número de error Significado
0 No hay errores
10001 eMCE_FatalErrMappingFailed
10002 eMCE_FatalErrNullPointer
10003 eMCE_FatalErrDiffMemSize
10005 eMCE_FatalErrMissingCfgParam
10100 eMCE_FatalErrWriteShMem
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10203 eMCE_ErrTrackInvalidFrameItf
10206 eMCE_ErrTrackInvalidConvResNum
10207 eMCE_ErrTrackInvalidConvResDenom
Tabla 8.12 Números de error del módulo RCTR_UpdateConvInterface
8.4.2 Ejemplo de cálculo ConvReNum / ConvResDenom
En un transportador se miden 46.117 incrementos después de un recorrido de 836 mm. Estos valores son el numerador y el denominador para el cálculo de la relación del recorrido del transportador respecto a los incrementos.
Cálculo:
ConvResNum = 46.117 incrementos
ConvResDenom = 836 mm
Estos dos valores se deben introducir en las correspondientes variables de entrada del módulo Conveyor.
8. Programación PLC de seguimiento lineal
82 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.5 Protocolo de objetos
En cuanto un objeto abandona la memoria de objetos, p. ej. llamada al módulo RCTR_RemoveObject, se registra en el protocolo de objetos. En él se guardan los objetos en una memoria; es posible memorizar 1.024 protocolos como máximo. Están disponibles los últimos 1.024 protocolos registrados. Cuando se registre una nueva entrada se borrará la más antigua.
Importante
Los datos del protocolo de objetos sirven para la diagnosis y la visualización. No es necesario ni recomendable la llamada de estos datos en MotionTask. Para ahorrar tiempo de cálculo, se recomienda llamar a estos módulos en intervalos elevados, p. ej. cada 100 ms.
Importante
Los objetos cuyo tratamiento ha finalizado se pueden reconocer mediante la lectura del protocolo de objetos. Después se pueden ejecutar otros pasos, como p. ej. borrar objetos a través del módulo RCTR_RemoveObject.
Están disponibles los siguientes módulos:
Módulo Significado
RCTR_ReadLog Lectura mediante el índice de protocolo de objetos
RCTR_GetLog Lectura mediante el UserId
RCTR_GetLatestLog Lectura automática
Tabla 8.13 Módulos para el protocolo de objetos
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 83
8.5.1 Módulo RCTR_ReadLog
Con el módulo RCTR_ReadLog se puede leer el protocolo de objetos en función del índice de objetos. El margen de valores del índice va de 0 hasta 1023.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente se leen los datos.
Índice DINT UserId especificado al crear el objeto con el módulo
RCTR_AddObject. En base a este Id se buscan los datos del objeto
adecuado en la memoria de protocolo y se ponen a disposición en
la salida Object.
Datos de salida
Done BOOL Con el flanco ascendente de la señal los datos de las salidas son
válidos y pueden ser procesados.
Error BOOL Si durante la lectura del objeto se origina un error, este flag estará
en TRUE.
ErrorId TMCE_ErrorID En caso de error (error = TRUE), se visualizará un número error con
errorId.
Object TRCTR_OBJECT Retorno de los datos de objeto.
Tabla 8.14 Datos del módulo RCTR_ReadLog
8. Programación PLC de seguimiento lineal
84 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ReadLog
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10205 eMCE_ErrTrackInvalidLogIdx
Tabla 8.15 Números de error del módulo RCTR_ReadLog
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 85
8.5.2 Módulo RCTR_GetLog
Con el módulo RCTR_ReadLog se pueden leer datos de un objeto desde la memoria de protocolo en base al UserId.
Importante
Si en la memoria hay varios objetos con el mismo UserId, se emitirá el primer objeto que se encuentre con este Id. Para que el acceso sea seguro deben evitarse los UserId repetidos.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente se leen los datos.
UserID DINT UserId especificado al crear el objeto con el módulo
RCTR_AddObject. En base a este Id se buscan los datos del objeto
adecuado en la memoria de protocolo y se ponen a disposición en
la salida Object.
Datos de salida
Done BOOL Con el flanco ascendente de la señal los datos de las salidas son
válidos y pueden ser procesados.
Error BOOL Si durante la lectura del objeto se origina un error, este flag estará
en TRUE.
ErrorID TMCE_ErrorID En caso de error (error = TRUE), se visualizará un número error con
errorId.
Object TRCTR_OBJECT Retorno de los datos de objeto.
Tabla 8.16 Datos del módulo RCTR_GetLog
8. Programación PLC de seguimiento lineal
86 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ReadLog
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
10252 eMCE_WarnTrackLogObjNotFound
Tabla 8.17 Números de error del módulo RCTR_GetLog
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 87
8.5.3 Módulo RCTR_GetLatestLog
Con el módulo RCTR_GetLatestLog se logra un desarrollo automático para la lectura del protocolo de objetos. Después de la activación, el módulo notifica automáticamente en la salida DataReady que hay una entrada de protocolo y lo pone a disposición en la salida de datos Object. Mediante una validación en la entrada AckData se inicia de nuevo el proceso.
Importante
Si en el módulo RCTR_UpdateConvInterface la entrada ManualRemoveObjects se ha puesto en True, entonces los objetos que han sido procesados o que han abandonado el espacio operativo no se borrarán automáticamente de la memoria. En este caso es necesario leerlos con el módulo RCTR_GetLatestLog y borrarlos con RCTR_RemoveObject.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Enable BOOL Con el flanco ascendente en la entrada Enable se activa el módulo.
El estado se visualiza mediante la salida Active.
AckData BOOL Con el flanco ascendente se reacciona a la salida DataReady para
validar y concluir el proceso de lectura.
8. Programación PLC de seguimiento lineal
88 Festo GDCP-CMXR-C2-ST-ES 1002NH
Datos de salida
Active BOOL El estado TRUE indica que el módulo está activo. Condición previa
para ello es que la entrada Enable posea el estado TRUE.
Error BOOL Si durante la lectura del objeto se origina un error, este flag estará
en TRUE.
ErrorId TMCE_ErrorID En caso de error (Error = TRUE), se visualizará un número error con
ErrorId.
DataReady BOOL El flanco ascendente de DataReady indica que ahora los datos
están disponibles en la salida Object.
Object TRCTR_Object Retorno de los datos de objeto.
Overflow BOOL El estado True indica que la memoria intermedia circular ha sido
sobreescrita desde la última lectura.
Tabla 8.18 Datos del módulo RCTR_GetLatestLog
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números
de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_GetLatestLog
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
Tabla 8.19 Números de error del módulo RCTR_GetLatestLog
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 89
8.6 Reponer memoria de objetos, protocolo de objetos
8.6.1 Módulo RCTR_ResetData
Con ayuda de este módulo se borran todas las piezas de la memoria de objetos y el protocolo de objetos así como los datos estadísticos.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Execute BOOL Con el flanco ascendente en Execute se borran la memoria de
objetos y el protocolo de objetos. Tras realizar el borrado con éxito
a la salida Done se le asigna el estado TRUE.
ResetBuffer BOOL Borrar selección de la memoria de objetos.
ResetLog BOOL Borrar selección del protocolo de objetos.
Datos de salida
Done BOOL El flanco ascendente en la salida Done indica que se han borrado
las memorias. Mediante el flanco descendente de la entrada
Execute se repone la salida Done.
Error BOOL Si durante el borrado se origina un error, este flag estará en TRUE.
ErrorID TMCE_ErrorID En caso de error (Error = TRUE), se visualizará un número error con
ErrorId.
Tabla 8.20 Datos del módulo RCTR_ResetData
8. Programación PLC de seguimiento lineal
90 Festo GDCP-CMXR-C2-ST-ES 1002NH
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ResetData
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
Tabla 8.21 Números de error del módulo RCTR_ResetData
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 91
8.7 Lectura de datos estadísticos
En el transcurso del tiempo se guardan datos estadísticos en el control de movimiento. Estos valores se actualizan continuamente. Si se sobrepasa el margen de valores de las variables individuales, no se tiene en cuenta. Para evitar esto es necesario leer y guardar los valores en intervalos de tiempo correspondientes.
Dentro del PLC es posible crear una evaluación estadística individual. P. ej. una evaluación cada hora, por días o por semanas.
Importante
Los datos estadísticos sirven para la diagnosis y la visualización. No es necesario ni recomendable la llamada de estos datos en MotionTask. Para ahorrar tiempo de cálculo, se recomienda llamar a estos módulos en intervalos elevados, p. ej. cada 100 ms.
8.7.1 Módulo RCTR_ReadStatistic
Con el módulo RCTR_ReadStatistic se leen los valores estadísticos grabados. El período de tiempo para leer y guardar se tiene que determinar individualmente en el PLC.
Datos de entrada
InterfaceNumber DINT A través del índice se establece la conexión con las memorias
internas de objetos. Existen como máximo 4 memorias de objetos.
El margen de valores permitido es de 0 a 3. 0 es el valor para la
primera memoria de objetos.
Enable BOOL Con la señal estática TRUE se pone en marcha la salida de datos.
La entrada Reset debe estar en FALSE.
Reset BOOL Con el flanco ascendente de Reset se reponen los datos
estadísticos. Esto sólo es posible cuando la entrada Enable está en
FALSE.
8. Programación PLC de seguimiento lineal
92 Festo GDCP-CMXR-C2-ST-ES 1002NH
Datos de salida
Active BOOL Esta salida está estáticamente en TRUE cuando Active = TRUE y no
hay ningún error. Señaliza que la salida de datos en las variables
está activa.
Error BOOL TRUE = error al leer el objeto.
ErrorId TMCE_ErrorID Número de error activo cuando Error = TRUE.
ResetDone BOOL La señal TRUE en esta salida indica que se ha realizado el Reset.
La reposición de la salida tiene lugar cuando se asigna FALSE a la
entrada Reset.
ReceivedObjects DINT Número de objetos que se han enviado a la memoria de objetos con
el módulo RCTR_AddObject. Es irrelevante si la llamada al módulo
ha tenido éxito o no.
AcceptedObjects DINT Número de objetos que se han registrado con éxito en la memoria
de objetos a través del módulo RCTR_AddObject.
OperatedObjects DINT Número de objetos recogidos en el programa FTL con el método
CONVEYOR. Wait.
FinishedObjects DINT Número de objetos que han sido identificados como procesados en
el programa FTL con el método CONVEYOR.Done. El estado asignado
por CONVEYOR.Done (TRUE o FALSE) no es relevante en este caso.
SuccessfulObjects DINT Número de objetos que han sido identificados como procesados con
éxito en el programa FTL con el método CONVEYOR.Done. y han sido
transmitidos con el estado TRUE.
NotSuccessfulObjects DINT Número de objetos que han sido identificados como no procesados
con éxito en el programa FTL con el método CONVEYOR.Done. y han
sido transmitidos con el estado FALSE.
MissedObjects DINT Número de objetos que se han desplazado de la zona de trabajo sin
ser procesados.
AvgWorkAreaReserve REAL Reserva media de espacio operativo del número de objetos indicado
en SuccessfulObjects. Esta indicación de valor es porcentual y se
refiere a la zona desde CONVEYOR.minWorkArea hasta
CONVEYOR.maxWorkArea.
Tabla 8.22 Datos del módulo RCTR_ReadStatistic
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 93
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_ReadStatistic
Número de error Significado
0 No hay errores
10201 eMCE_ErrTrackNotInitialized
10202 eMCE_ErrTrackInvalidInterface
Tabla 8.23 Números de error del módulo RCTR_ReadStatistic
Importante
Con la información de la reserva media de espacio operativo se puede optimizar el sistema a través del PLC. Una posibilidad de optimización sería la regulación de la velocidad de la cinta para descargar la cinemática.
8. Programación PLC de seguimiento lineal
94 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.8 Preparación de señales en el PLC
En la práctica, las señales del encoder a menudo tienen pulsos parasitarios. Para crear un movimiento suave de la cinemática en la operación de seguimiento, la señal del encoder debe ser preparada con los métodos de filtrado adecuados.
Una desventaja de los métodos de filtrado es que a menudo puede darse un retraso temporal de los movimientos. Si el transportador se detiene a saltos, a causa del filtro el sistema todavía necesita algunos pulsos de interpolación para procesar la señal del encoder. Un método de filtrado sólo debería filtrar en la medida en que sea absolutamente
necesario.
Importante
Un filtrado de las señales del encoder influye en el comportamiento temporal del movimiento de seguimiento.
Para la preparación de la señal de seguimiento en la aplicación de seguimiento están disponibles algunos bloques funcionales en la biblioteca RcSignalProcessing.lib.
Nombre del módulo Significado
RCSP_LagCompensator Servopilotaje de la posición a causa de tiempos inactivos
condicionados por el sistema
RCSP_SignalInfo Informaciones de señales
RCSP_SmoothingFilter Filtro de señal para la señal del encoder, filtro de valor medio
variable de la velocidad de la señal
RCSP_DynLimitFilter Filtro de señal para la señal del encoder, filtro limitador de
velocidad y aceleración de la señal
Tabla 8. 24 Módulos de la biblioteca RcSignalProcessing.lib
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 95
8.8.1 Módulo RCTR_LagCompensator
Para compensar tiempos inactivos condicionados por el sistema existe un módulo que, con ayuda de la velocidad actual, extrapola una posición servopilotada en algunos pulsos del sistema.
Los valores de posición indicados en la entrada Pos se depositan cíclicamente en una memoria intermedia circular. Para el cálculo se determina el valor promedio de los últimos valores (número de la entrada LagTime, máx. 19). La diferencia entre el valor promedio y el nuevo valor establecido en la entrada Pos se suma al valor de la entrada Pos y se emite en la salida Predicted Pos. De esta manera se determina el promedio de la velocidad actual.
La primera vez que se llama al módulo, la memoria intermedia circular interna se inicializa con el valor de posición transmitido.
Para seguir el procesamiento se une la salida PredictedPos con la entrada ConvPos en el
módulo RCTR_UpdateConvInterface. De este modo los objetos se actualizan en su posición.
Importante
El tratamiento del módulo debe realizarse en MotionTask.
Datos de entrada
Enable BOOL Activación del módulo. Para ello la entrada Enable debe poseer
estáticamente el estado TRUE. En caso de flanco positivo, se borra la
memoria interna y a todos los valores se les asigna el valor
transmitido con la entrada Pos.
LagTime TIME Número de pulsos del sistema (pulsos de Motion Task) que se
deben servopilotar mediante el módulo para compensar los tiempos
inactivos. Se pueden especificar 19 pulsos como máximo.
Pos DINT Posición absoluta en incrementos, p. ej. posición de un encoder o
también una posición preparada de otra manera.
8. Programación PLC de seguimiento lineal
96 Festo GDCP-CMXR-C2-ST-ES 1002NH
Datos de salida
Active BOOL El estado TRUE en la salida Active indica que el módulo está activo y
la posición emitida en la salida PredictedPos es válida.
Error BOOL Cuando hay un error, este flag está en TRUE.
ErrorID TMCE_ErrorID En caso de error (Error = TRUE), se visualizará un número error con
ErrorId.
PredictedPos DINT Posición modificada en incrementos.
Tabla 8.25 Datos del módulo RCTR_ResetData
Números de error
En caso de error (Error = TRUE), se visualizará un número error con ErrorId. Los números de error correspondientes están descritos en el capítulo 8.9 Mensajes de los módulos en la página 100.
La siguiente tabla contiene los números de error del módulo RCTR_LagCompensator
Número de error Significado
0 No hay errores
10209 eMCE_ErrTrackInvalidLagTime
Tabla 8. 26 Números de error del módulo RCTR_LagCompensator
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 97
8.8.2 Módulo RCTR_SignalInfo
Con este módulo se pueden calcular los datos dinámicos del transportador. Para ello es necesario incluir el numerador y el denominador (relación entre incrementos del encoder y trayecto recorrido) análogamente al módulo Conveyor. Estos datos sirven para la diagnosis y no tienen ningún efecto sobre la aplicación.
Datos de entrada
InPos DINT Posición en incrementos, p. ej. posición de un transductor de
posición o también una posición preparada de otra manera.
ResNum DINT Estos dos valores enteros determinan un factor para la conversión
de incrementos a la unidad deseada, p. ej. milímetros.
El cálculo se realiza con la división ConvResNum / ConvResDenom.
La división de los incrementos por este factor da como resultado la
unidad deseada.
ResDenom DINT
SwoVarName STRING(80) Si aquí se indica un nombre de variable, las características de la
señal serán registradas bajo ese nombre en el osciloscopio de
software y por lo tanto podrán ser grabadas.
Datos de salida
Position REAL Posición actual del transductor [mm]
Velocity REAL Velocidad actual de la señal del transductor [mm/s]
Aceleración REAL Aceleración actual de la señal del transductor [mm/s]
Jerk REAL Sacudida actual de la señal del transductor [mm/s³]
Tabla 8.27 Datos del módulo RCTR_SignalInfo
8. Programación PLC de seguimiento lineal
98 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.8.3 Módulo RCTR_SmoothingFilter
El RCSP_SmoothingFilter determina la velocidad media de la señal para una duración determinada especificada. Esto ocasiona un fuerte filtrado y un retardo temporal de la señal.
Datos de entrada
Enable BOOL Un flanco ascendente activa el módulo de filtro. Para el
funcionamiento debe estar asignado estáticamente el estado
TRUE.
InPos DINT Valor de posición en incrementos.
Smoothing TIME Tiempo de determinación de la señal.
Datos de salida
Active REAL El estado de salida = TRUE indica que el módulo de filtro está
activo y por lo tanto la salida es válida en la salida OutPos.
OutPos REAL Emisión de la posición filtrada en incrementos. Si el filtro no está
activo o no se ha especificado ningún tiempo, entonces el valor de
entrada será transmitido directamente. En este caso el filtro está
desconcertado.
Tabla 8.28 Datos del módulo RCTR_SmoothingFilter
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 99
8.8.4 Módulo RCTR_DynLimitFilter
El DynLimitFilter es un filtro de señal que limita la señal de entrada mediante la limitación de la velocidad y la aceleración de la cinta. Este filtro se puede utilizar para filtrar una señal muy ruidosa sin limitar demasiado la capacidad de reacción. El efecto de filtrado aumenta adicionalmente en gran medida cuando el “filtro previo” integrado (=smoothingFilter) es activado con un tiempo breve (aprox. De 2 a 5 veces el tiempo de ciclo).
Datos de entrada
Enable BOOL Un flanco ascendente activa el módulo de filtro. Para el funcionamiento debe estar asignado estáticamente el estado TRUE.
InPos DINT Valor de posición en incrementos.
ResNum DINT Estos dos valores enteros determinan un factor para la conversión de incrementos a la unidad deseada, p. ej. milímetros. El cálculo se realiza con la división ResNum / ResDenom. La división de los incrementos por este factor da como resultado la unidad deseada.
ResDenom DINT
PreFilterSmoothingTime TIME El tiempo que tarda el filtro previo en determinar la velocidad media de la señal.
MaxVelocity REAL Velocidad máxima en mm/s en la señal de salida. Si se introduce el valor 0 no se limitará la velocidad.
MaxAcceleration REAL Aceleración máxima en mm/s² en la señal de salida. Si se introduce el valor 0 no se limitará la aceleración.
Datos de salida
Active BOOL El estado de salida = TRUE indica que el módulo de filtro está activo y por lo tanto la salida es válida en la salida OutPos.
OutPos DINT Posición filtrada en incrementos. Si el filtro no está activo o no se ha especificado ningún tiempo, entonces la posición de entrada será transmitida directamente. En este caso el filtro no trabaja.
OutResNum DINT Emisión del numerador y el denominador con los que se ha calculado la posición.
OutResDenom DINT
Tabla 8.29 Datos del módulo RCTR_DynLimitFilter
8. Programación PLC de seguimiento lineal
100 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.9 Mensajes de los módulos
A continuación se describen todos los mensajes que son creados por los módulos. Las enumeraciones mencionadas están definidas dentro de la biblioteca McUtils.lib en CoDeSys.
Se diferencia entre errores internos y errores de usuario. Si se produce un fallo interno póngase en contacto con el proveedor del sistema. Los errores de usuario se producen a causa de una programación errónea de la aplicación y pueden ser eliminados por el usuario (p. ej. datos no válidos en las entradas de los bloques funcionales) y también
pueden aparecer en el funcionamiento normal (p. ej. más piezas en la cinta transportadora de las que pueden ser procesadas porque la cinta transportadora esta ajustada demasiado rápida).
8.9.1 Errores del sistema (errores graves)
Número de mensaje 10001
Tipo de mensaje Error grave
Enumeración eMCE_FatalErrMappingFailed
Texto del mensaje Shared Memory no encontrada: '%1'
Parámetro 1: Nombre de la Shared Memory
Efecto El control se detiene.
Causa Error al mapear las Shared Memories para la comunicación entre FTL y PLC (error
nterno)
Medida Comprobar la configuración del sistema
Número de mensaje 10002
Tipo de mensaje Error grave
Enumeración eMCE_FatalErrNullPointer
Texto del mensaje El indicador en la Shared Memory es cero: '%1'
Parámetro 1: Nombre de la Shared Memory
Efecto El control se detiene.
Causa Error al mapear las Shared Memories para la comunicación entre FTL y PLC
(error interno)
Medida Comprobar la configuración del sistema.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 101
Número de mensaje 10003
Tipo de mensaje Error grave
Enumeración eMCE_FatalErrDiffMemSize
Texto del mensaje Tamaño inesperado de la Shared Memory '%1': %3, %2
Parámetro 1: Nombre de la Shared Memory
2: Tamaño esperado de la Shared Memory
3: Tamaño actual de la Shared Memory
Efecto El control se detiene.
Causa El tamaño de la estructura de datos no es compatible con el tamaño de las Shared
Memories para la comunicación entre FTL y PLC (error interno)
Medida Comprobar la configuración del sistema
Número de mensaje 10005
Tipo de mensaje Error grave
Enumeración eMCE_FatalErrMissingCfgParam
Texto del mensaje La entrada del catálogo %1 no se ha podido leer.
Parámetro 1: Nombre de la entrada del catálogo.
Efecto La aplicación no puede ejecutarse.
Causa El tipo de Frame (Euler o Kardan) no ha podido ser leído del catálogo (error interno).
Medida Comprobar la configuración del sistema
Número de mensaje 10100
Tipo de mensaje Error grave
Enumeración eMCE_FatalErrWriteShMem
Texto del mensaje La versión de interface (%2) no es compatible con Rc.lib (%3) ('%1').
Parámetro 1: Nombre de la Shared Memory
2: Versión esperada de interface
3: Versión actual de interface
Efecto El control se detiene.
Causa La versión de interface no es compatible con RC.lib.
Medida Comprobar la configuración del sistema
8. Programación PLC de seguimiento lineal
102 Festo GDCP-CMXR-C2-ST-ES 1002NH
8.9.2 Error
Número de mensaje 10201
Tipo de mensaje Error
Enumeración eMCE_ErrTrackNotInitialized
Texto del mensaje %1: El seguimiento no está inicializado
Parámetro 1: Bloque funcional desde el que se ha producido el error
Efecto No se puede ejecutar el bloque funcional
Causa El seguimiento no está inicializado, por ello no se puede utilizar el módulo.
Primero es necesario llamar a RCTR_UpdateConvInterface.
Medida Comprobar aplicación
Número de mensaje 10202
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidInterface
Texto del mensaje %1: Índice Conveyor no válido %2 (margen de valores permitido: %3..%4)
Parámetro 1: Nombre del bloque funcional que ha sido llamado.
2: Índice de interface
3: Índice más bajo permitido
4: Índice más alto permitido
Efecto El bloque funcional no se ejecuta.
Causa El bloque funcional ha sido llamado con un índice de interface no válido.
Medida Comprobar aplicación.
Número de mensaje 10203
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidFrameItf
Texto del mensaje Índice Frame no válido %1 (margen de valores permitido: %2..%3)
Parámetro 1: Índice Frame
2: Índice más bajo permitido
3: Índice más alto permitido
Efecto El bloque funcional no se ejecuta.
Causa El módulo ha sido llamado con un índice de puerto no válido.
Medida Comprobar aplicación.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 103
Número de mensaje 10204
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidBufferIdx
Texto del mensaje Conveyor %1: RCTR_ReadBuffer ha sido llamado con un índice de memoria
intermedia %2 no válido (margen de valores permitido: %3..%4)
Parámetro 1: Índice del Conveyor
2: Índice programado
3: Índice más bajo permitido
4: Índice más alto permitido
Efecto El bloque funcional no se ejecuta.
Causa RCTR_ReadBuffer ha sido llamado con un índice no válido.
Medida Comprobar aplicación.
Número de mensaje 10205
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidLogIdx
Texto del mensaje Conveyor %1: RCTR_ReadLog ha sido llamado con un índice de protocolo %2
no válido (margen de valores permitido: %3..%4)
Parámetro 1: Índice del Conveyor
2: Índice programado
3: Índice más bajo permitido
4: Índice más alto permitido
Efecto El bloque funcional no se ejecuta.
Causa RCTR_ReadLog ha sido llamado con un índice no válido.
Medida Comprobar aplicación.
8. Programación PLC de seguimiento lineal
104 Festo GDCP-CMXR-C2-ST-ES 1002NH
Número de mensaje 10206
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidConvResNum
Texto del mensaje Conveyor %1: numerador %2 no válido de la resolución del encoder
(el valor no puede ser 0).
Parámetro 1: Índice del Conveyor
2: Numerador especificado
Efecto El bloque funcional no se ejecutará, la función de seguimiento no se puede utilizar.
Causa RCTR_UpdateConvInterface ha sido llamado con un valor no válido para
convResNum.
Medida Comprobar aplicación.
Número de mensaje 10207
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidConvResDenom
Texto del mensaje Conveyor %1: denominador %2 no válido de la resolución del encoder
(el valor no puede ser 0).
Parámetro 1: Índice del Conveyor
2: Denominador especificado
Efecto El bloque funcional no se ejecutará, la función de seguimiento no se puede utilizar.
Causa RCTR_UpdateConvInterface ha sido llamado con un valor no válido para
convResDenom.
Medida Comprobar aplicación.
Número de mensaje 10209
Tipo de mensaje Error
Enumeración eMCE_ErrTrackInvalidLagTime
Texto del mensaje RCSP_LagCompensator: tiempo inactivo no válido: %1 ms (el tiempo inactivo no
puede ser mayor que %2 ms)
Parámetro 1: LagTime especificado
2: LagTime mayor permitido
Efecto El bloque funcional no se ejecuta.
Causa RCTR_LagCompensator ha sido llamado con un valor no válido para LagTime.
Medida Comprobar aplicación.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 105
8.9.3 Advertencia
Número de mensaje 10250
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackObjFrameNotFound
Texto del mensaje Conveyor %1: El objeto #%2 no ha sido encontrado en la lista interna de Frame
Parámetro 1: Índice del Conveyor
2: UserId del objeto
Efecto El bloque funcional no se ejecuta.
Causa No se ha encontrado ningún objeto con el ID especificado.
Medida Comprobar aplicación.
Número de mensaje 10251
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackBufferObjNotFound
Texto del mensaje %3: El objeto #%2 no ha sido encontrado en la memoria de objetos de Conveyor %1
Parámetro 1: Índice del Conveyor
2: UserId del objeto
3: Nombre del bloque funcional que ha sido llamado.
Efecto El bloque funcional no se ejecuta.
Causa No se ha encontrado ningún objeto con el ID especificado.
Medida Comprobar aplicación.
Número de mensaje 10252
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackLogObjNotFound
Texto del mensaje %3: El objeto #%2 no ha sido encontrado en la memoria de protocolo de
Conveyor %1
Parámetro 1: Índice del Conveyor
2: ID del objeto
3: Nombre del bloque funcional que ha sido llamado.
Efecto El bloque funcional no se ejecuta.
Causa No se ha encontrado ningún objeto con el ID especificado.
Medida Comprobar aplicación.
8. Programación PLC de seguimiento lineal
106 Festo GDCP-CMXR-C2-ST-ES 1002NH
Número de mensaje 10253
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackObjRejected
Texto del mensaje %3: El objeto #1 ha sido rechazado por Conveyor - Error: %2
Parámetro 1: UserId del objeto
2: Número de error
3: Nombre del bloque funcional que ha sido llamado.
Efecto El objeto no será procesado.
Causa El objeto ha sido rechazado por Conveyor
Medida Comprobar Conveyor
Número de mensaje 10254
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackObjNotAccepted
Texto del mensaje Conveyor %1: El objeto #%2 no ha sido aceptado por RC
Parámetro 1: Índice del Conveyor
2: UserId del objeto
Efecto El objeto no puede ser procesado.
Causa El objeto ha sido rechazado por el interface interno del RobotControl.
Medida Comprobar aplicación.
Número de mensaje 10260
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackBufferFull
Texto del mensaje %3: El objeto #%2 no se puede registrar en la memoria de objetos de Conveyor %1,
la memoria de objetos está llena
Parámetro 1: Índice del Conveyor
2: ID del objeto
3: Nombre del bloque funcional que ha sido llamado.
Efecto La ejecución del bloque funcional falla.
Causa El objeto de la detección de piezas no se ha podido registrar en la memoria de
objetos, la memoria intermedia está llena.
Medida Comprobar aplicación.
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 107
Número de mensaje 10261
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackLogOverflow
Texto del mensaje %3: El protocolo de Conveyor %1 se ha desbordado (último objeto leído: %2)
Parámetro 1: Índice del Conveyor
2: UserId del último objeto leído
3: Nombre del bloque funcional que ha sido llamado.
Efecto No es posible leer todos los objetos procesados del protocolo de objetos.
Causa Desde la última lectura de un objeto desde la memoria de protocolo se han
procesado demasiados objetos.
Medida Comprobar aplicación.
Número de mensaje 10262
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackRemoveFromBufFail
Texto del mensaje %3: El objeto #%2 no se ha podido eliminar de la memoria de objetos de
Conveyor %1.
Parámetro 1: Índice del Conveyor
2: UserId del objeto
3: Nombre del bloque funcional que ha sido llamado.
Efecto El módulo no se ejecuta.
Causa Error interno en la gestión de objetos.
Medida Comprobar aplicación.
Número de mensaje 10263
Tipo de mensaje Advertencia
Enumeración eMCE_WarnTrackAddToLogFailed
Texto del mensaje %3: El objeto #%2 no se ha podido registrar en el protocolo de Conveyor %1.
Parámetro 1: Índice del Conveyor
2: ID del objeto
3: Nombre del bloque funcional que ha sido llamado.
Efecto El módulo no se puede ejecutar.
Causa Error interno en la gestión de objetos.
Medida Si el problema aparece repetidamente póngase en contacto con el proveedor
del sistema.
8. Programación PLC de seguimiento lineal
108 Festo GDCP-CMXR-C2-ST-ES 1002NH
Número de mensaje 10264
Tipo de mensaje Advertencia
Enumeración eMCE_WarnLogIteratorNotInitialized
Texto del mensaje Conveyor %1: RCTR_ReadFirstLogObject debe ser llamado una vez antes de la
primera llamada de RCTR_ReadNextLogObject
Parámetro 1: Índice del Conveyor
Efecto El bloque funcional no se ejecuta.
Causa RCTR_ReadNextLogObject ha sido llamado sin haber ejecutado antes
RCTR_ReadFirstLogObject.
Medida Llamar al RCTR_ReadFirstLogObject.
8.9.4 Informaciones
Número de mensaje 10280
Tipo de mensaje Info
Enumeración eMCE_InfoTrackObjectAborted
Texto del mensaje Conveyor %1: La demanda de un objeto nuevo ha sido interrumpida (objeto #%2)
Parámetro 1: Índice del Conveyor
2: UserId del objeto
Efecto Ninguno
Causa La aplicación ha interrumpido la demanda.
Medida Ninguno
Número de mensaje 10281
Tipo de mensaje Info
Enumeración eMCE_InfoTrackObjLeftArea
Texto del mensaje Conveyor %1: El objeto #%2 ha abandonado el espacio operativo
Parámetro 1: Índice del Conveyor
2: ID del objeto
Efecto El objeto no ha sido procesado.
Causa El objeto ha salido de la zona de trabajo antes de ser procesado.
Medida Ninguno
8. Programación PLC de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 109
8.10 Integración de detectores
Para poder detectar objetos en el sistema transportador es necesario un detector. Se puede utilizar, p. ej., una barrera de luz o un sistema de visión. Para conducir los objetos detectados al control de movimiento es necesario un módulo de software, que realiza la gestión de los objetos detectados.
Tareas de la gestión de objetos:
Interface con un módulo de software para la conexión a un detector
Gestión de los datos recibidos
Enviar los objetos recibidos al control de movimiento
Recibir los objetos procesados o no procesados desde el control de movimiento
Enviar los objetos no procesados a una cinemática subsecuente con otro control CMXR, si ésta existe.
Objeto 1
Objeto 2
Objeto 3
Objeto 4
Objeto …..
Gestión de objetos
Módulo para la conexión del sistema de detectores
Detector, p. ej. barrera de luz, Vision
Enviar objetos con módulo RCTR_AddObject a la memoria de objetos.
Opcionalmente, leer y gestionar el estado de
los objetos con los módulos
correspondientes. Programa de usuario PLC
Función del sistema
Significado de los colores:
9. Aplicaciones de seguimiento lineal
110 Festo GDCP-CMXR-C2-ST-ES 1002NH
9. Aplicaciones de seguimiento lineal
9.1 Creación de programas FTL
Al crear programas FTL, primero no es relevante el movimiento de seguimiento. Los programas FTL primero se crean sin movimiento de seguimiento, lo que equivale al tratamiento de un objeto que está parado. Tras la puesta a punto de esta secuencia, el movimiento de seguimiento se sobrepone y se prueba utilizando el sistema de referencia dinámico de la trayectoria programada real.
9.2 Aplicaciones con un sistema transportador
En este capítulo se describen ejemplos de aplicaciones y combinaciones de sistemas transportadores. Este capítulo no pretende ser una exposición completa y veraz.
9.2.1 Tratamiento de objetos iguales, sin clasificación
En esta aplicación un transportador debe tomar objetos en movimiento y depositarlos en una posición fija. El orden para la toma de los objetos está determinado por el orden de la memoria de objetos. Esto significa que en la memoria no se vuelven a clasificar los objetos.
:
SetRefSysWorld()
// en posición de espera
Lin(WaitPos)
// activar Conveyor
Conv1.Begin()
WHILE TRUE DO
// esperar a la próxima pieza
Conv1.Wait(PartData)
// espera pieza en zona de trabajo
Conv1.WaitReachable(PartData)
// activar sistema de referencia del objeto
SetRefSysDyn(PartData.RefSys)
// vacío ventosa conectado
Vakuum.Set()
// sobre la pieza
Lin(AbovePos)
// posición de agarre
Lin(TakePos)
// tiempo de agarre
WaitTime(0)
9. Aplicaciones de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 111
// sobre la pieza
Lin(AbovePos)
// sistema de referencia WORLD
SetRefSysWorld()
// borrar pieza de la memoria
Conv1.Done(PartData)
Lin(AboveReleasePos)
// posición de colocación
Lin(ReleasePos)
// vacío ventosa desconectado
Vacuum.Reset()
// tiempo de espera vacío
WaitTime(10)
Lin(AboveReleasePos)
END_WHILE
:
9.2.2 Tratamiento de objetos iguales, con clasificación
Los objetos que se encuentran sobre la cinta deben ser tomados y procesados en un orden específico. La clasificación se realiza en función del atributo del objeto en los datos de objetos. El primer objeto debe tener el atributo 13, el segundo el 28 y el tercer objeto el atributo 17.
:
SetRefSysWorld()
// en posición de espera
Lin(WaitPos)
Index := 0
// activar sistema transportador
Conv1.Begin()
WHILE TRUE DO
// cálculo ID piezas
IF Index = 0 THEN
PartId := 13
ELSIF Index = 1 THEN
PartId := 28
ELSIF Index = 2 THEN
PartId := 17
END_IF
9. Aplicaciones de seguimiento lineal
112 Festo GDCP-CMXR-C2-ST-ES 1002NH
// esperar a objeto con ID existente
Conv1.Wait(PartData, PartId)
// espera pieza en zona de trabajo
Conv1.WaitReachable(PartData)
// activar sistema de referencia del objeto
SetRefSysDyn(PartData.RefSys)
Vakuum.Set() // vacío ventosa conectado
Lin(AbovePos) // sobre la pieza
Lin(TakePos) // posición de agarre
WaitTime(0) // tiempo de agarre
Lin(AbovePos) // sobre la pieza
SetRefSysWorld() // sistema de referencia WORLD
Conv1.Done(PartData) // borrar pieza de la memoria
Lin(AboveReleasePos)
Lin(ReleasePos) // posición de colocación
Vacuum.Reset() // vacío ventosa desconectado
WaitTime(10) // tiempo de espera vacío
Lin(AboveReleasePos)
// índice para PartId
Index := Index + 1
IF Index = 3 THEN
Index := 0
END_IF
END_WHILE
:
9. Aplicaciones de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 113
9.2.3 Modificación del sistema de referencia
El sistema de referencia incluido en los datos de objetos sólo se puede leer, y por lo tanto no puede ser escrito en el programa FTL. Si la programación FTL exige un desplazamiento del sistema de referencia, p. ej. para facilitar la programación de una conexión en serie de objetos en movimiento, se puede programar un encadenamiento de un sistema de referencia estático con uno dinámico.
Ejemplo: :
// llevar datos de objetos
Conv1.WaitObj(partData)
:
// referencia estática a sistema en movimiento
newRef.baseRs := MAP(partData.refsys)
// desplazamiento, rotación del sistema
newRef.a := 30
newRef.x := 100
// activar el sistema
SetRefSys(newRef)
:
9. Aplicaciones de seguimiento lineal
114 Festo GDCP-CMXR-C2-ST-ES 1002NH
9.2.4 Depositar el objeto en la cinta en la posición correcta Un objeto debe depositarse en la cinta en la misma posición con orientación definida de 90 grados (giro alrededor de Z). Para ello, en la operación de seguimiento se eleva el objeto, se ajusta la orientación y se deposita sobre la cinta en la misma posición.
Para realizar esta tarea existen 2 opciones:
La pieza levantada es girada con el valor de la diferencia de la orientación y la posición de colocación correspondientemente también con el mismo valor.
Tras calcular la diferencia de la orientación, en la memoria de objetos se reescribe el sistema de referencia del objeto, que se activa inmediatamente. Por lo tanto no es necesario calcular de nuevo la posición de colocación. A continuación la nueva orientación será tenida en cuenta automáticamente a través del sistema de referencia modificado.
Ejemplo con modificación del sistema de referencia del objeto:
:
RefSysWorld()
Lin(WaitPos) // en posición de espera
Conv1.Begin() // activar sistema transportador
WHILE TRUE DO
Conv1.Wait(PartData) // esperar a la próxima pieza
// espera pieza en zona de trabajo
Conv1.WaitReachable(PartData)
// activar sistema de referencia del objeto
SetRefSysDyn(PartData.RefSys)
Vakuum.Set() // vacío ventosa conectado
Lin(AbovePos) // sobre la pieza
Lin(TakePos) // posición de agarre
WaitTime(0) // tiempo de agarre
Lin(AbovePos) // sobre la pieza
// modificar el sistema de referencia de objetos
newRef.baseRs := MAP(PartData.refSys)
Distance := 90 – PartData.refSys.frame.a
newRef.a := PartData.refSys.frame.a + Distance
SetRefSys(newRef)
Lin(AbovePos) // sobre la pieza
Lin(TakePos) // posición de agarre
Vacuum.Reset() // vacío ventosa desconectado
WaitTime(10) // tiempo de espera vacío
Lin(AbovePos) // sobre la pieza
RefSysWorld() // sistema de referencia WORLD
Conv1.Done(PartData) // borrar pieza de la memoria
END_WHILE :
9. Aplicaciones de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 115
9.2.5 Alinear objetos en la cinta en la posición correcta
En el sistema transportador debe orientarse un objeto con la rotación a 0 grados. Otros 2 objetos deben depositarse en la cinta en la posición correcta y con una distancia definida de 5 mm. Todos los objetos que están en el sistema transportador son iguales, no hay variantes. La anchura de los objetos es de 30 mm.
Si se conoce la orientación de la línea de objetos, ésta se puede programar dentro de la
programación FTL. También es posible que el PLC cree objetos vacíos y los guarde en la memoria de objetos en la posición correcta. En este caso la programación FTL es más fácil.
Ejemplo con determinación de posición en FTL:
:
// activar sistema transportador
Conv1.Begin()
SetRefSysWorld()
// en posición de espera
Lin(WaitPos)
WHILE TRUE DO
// esperar a la primera pieza
Conv1.Wait(FirstPart)
// espera pieza en zona de trabajo
Conv1.WaitReachable(FirstPart)
// activar sistema de referencia del objeto
SetRefSysDyn(FirstPart.refSys)
CALL TakePart
// regresar a 0 grados
// modificar el sistema de referencia de objetos
Objetos sueltos Objetos posicionados y
orientados a 0 grados
Transportador
9. Aplicaciones de seguimiento lineal
116 Festo GDCP-CMXR-C2-ST-ES 1002NH
newRef.baseRs := MAP(FirstPart.refsys)
newRef.a := 90 - FirstPart.refSys.frame.a
SetRefSys(newRef)
// variable global para el cálculo de la distancia
DistanceY := 0
CALL PutPart
// Offset Y 20 mm para la próxima pieza
DistanceY := DistanceY + 20
// esperar a la próxima pieza
Conv1.Wait(NextPart)
// espera pieza en zona de trabajo
Conv1.WaitReachable(NextPart)
// activar sistema de referencia del objeto
SetRefSysDyn(NextPart.refSys)
CALL TakePart
// sistema de referencia del primer objeto
SetRefSys(newRef)
Conv1.Done(NextPart) // borrar pieza de la memoria
CALL PutPart
// Offset Y 20 mm para la próxima pieza
DistanceY := DistanceY + 20
Conv1.Wait(NextPart) // esperar a la próxima pieza
// espera pieza en zona de trabajo
Conv1.WaitReachable(NextPart)
// activar sistema de referencia del objeto
SetRefSysDyn(NextPart.refSys)
CALL TakePart
// sistema de referencia del primer objeto
SetRefSys(newRef)
Conv1.Done(NextPart) // borrar pieza de la memoria
CALL PutPart
// las 3 piezas han sido depositadas
SetRefSysWorld() // sistema de referencia WORLD
Conv1.Done(FirstPart) // borrar pieza de la memoria
Lin(WaitPos)
END_WHILE
:
9. Aplicaciones de seguimiento lineal
Festo GDCP-CMXR-C2-ST-ES 1002NH 117
Subprograma FTL TakePart
Este programa toma la pieza del transportador con una ventosa.
Vakuum.Set() // vacío ventosa conectado
Lin(AbovePos) // sobre la pieza
Lin(TakePos) // posición de agarre
WaitTime(0) // tiempo de agarre
Lin(AbovePos) // sobre la pieza
Subprograma FTL PutPart
Con el programa PutPart se deposita la pieza. La posición es determinada por el sistema de referencia activo.
AbovePos.y := DistanceY
Lin(AbovePos) // sobre la pieza
TakePos.y := DistanceY
Lin(TakePos) // posición de agarre
Vacuum.Reset() // vacío ventosa desconectado
WaitTime(10) // tiempo de espera vacío
Lin(AbovePos) // sobre la pieza
Ejemplo con objetos “vacíos”
En este ejemplo el PLC crea objetos vacíos que representan el orden posterior. Para que el orden de los objetos “vacíos” sea detectado, el PLC crea esta serie con IDs definidos, p. ej. 11, 12, 13. Los objetos reales recibirán, p. ej. el ID = 1.
Objetos sueltos Objetos “vacíos”
Transportador
9. Aplicaciones de seguimiento lineal
118 Festo GDCP-CMXR-C2-ST-ES 1002NH
:
Conv1.Begin() // activar sistema transportador
SetRefSysWorld()
Lin(WaitPos) // en posición de espera
Id := 11
WHILE TRUE DO
// esperar a objeto ID = 1
Conv1.Wait(bluePart, 1) // esperar a la primera pieza
// espera pieza en zona de trabajo
Conv1.WaitReachable(bluePart)
// activar sistema de referencia del objeto
SetRefSysDyn(bluePart.refSys)
CALL TakePart
// esperar a objeto vacío, ID = 11
Conv1.Wait(emptyPart, Id) // esperar a la primera pieza
// espera pieza en zona de trabajo
Conv1.WaitReachable(emptyPart)
// activar sistema de referencia del objeto
SetRefSysDyn(emptyPart.refSys)
Conv1.Done(bluePart)
CALL PutPart
SetRefSysWorld() // sistema de referencia WORLD
Conv1.Done(emptyPart) // borrar pieza de la memoria
// cálculo del ID piezas
Id := Id + 1
IF Id = 14 THEN
Id := 11
END_IF
END_WHILE
: