Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de...

118
Controlador Manual Instrucciones de programación CMXR Tracking Manual 571 707 es 1002NH [751 522]

Transcript of Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de...

Page 1: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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]

Page 2: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...
Page 3: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 4: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 5: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

Í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

Page 6: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

Í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

Page 7: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

Í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

Page 8: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 9: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 10: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 11: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 12: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 13: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 14: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 15: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 16: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 17: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 18: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 19: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 20: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 21: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 22: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 23: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 24: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 25: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 26: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 27: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 28: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 29: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 30: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 31: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

5. Función general de seguimiento

Festo GDCP-CMXR-C2-ST-ES 1002NH 31

Page 32: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 33: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 34: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 35: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 36: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 37: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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:

Page 38: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 39: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 40: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 41: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 42: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 43: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 44: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 45: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 46: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 47: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 48: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 49: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 50: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 51: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 52: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 53: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 54: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 55: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 56: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 57: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 58: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 59: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 60: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 61: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 62: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 63: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 64: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 65: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 66: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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:

Page 67: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 68: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 69: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 70: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 71: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 72: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 73: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 74: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 75: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 76: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 77: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 78: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 79: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 80: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 81: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 82: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 83: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 84: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 85: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 86: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 87: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 88: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 89: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 90: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 91: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 92: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 93: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 94: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 95: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 96: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 97: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 98: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 99: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 100: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 101: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 102: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 103: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 104: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 105: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 106: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 107: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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.

Page 108: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 109: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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:

Page 110: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

Page 111: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 112: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

:

Page 113: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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)

:

Page 114: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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 :

Page 115: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 116: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

:

Page 117: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

Page 118: Controlador - festo.com · 6.3 Memoria de objetos, protocolo de objetos..... 37 6.4 Tratamiento de los objetos ... Programación FTL de seguimiento lineal ...

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

: