Festo CMXR Instrucciones De Programacion
Ocultar thumbs Ver también para CMXR:
Tabla de contenido

Publicidad

Enlaces rápidos

Controlador
Descripción
Instrucciones de
programación
CMXR
Base FTL
Descripción
560 317
es 1002b
[752 933]

Publicidad

Tabla de contenido
loading

Resumen de contenidos para Festo CMXR

  • Página 1 Controlador Descripción Instrucciones de programación CMXR Base FTL Descripción 560 317 es 1002b [752 933]...
  • Página 3 Edición ______________________________________________________ 1002b Denominación _____________________________________ GDCP-CMXR-SW-ES Nº de art. ___________________________________________________ 560 317 Festo AG & Co KG., D-73734 Esslingen, 2010 Internet: http://www.festo.com E-mail: service_international@festo.com 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.
  • Página 4 Nombre del archivo: Lugar de almacenamiento del archivo: Nº de art. Descripción Indicador de Fecha de modificación revisión Redacción 0805NH 25.06.2008 Adaptación a la versión 1.20 0909a 25.08.2009 Adaptación a CMXR-C2 Versión 1.0 1002b 24.03.2010 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 5: Tabla De Contenido

    Cadenas de caracteres ..................26 Operadores y caracteres de delimitación ............26 4.6.1 Operadores aritméticos ..............27 4.6.2 Operadores lógicos ................27 4.6.3 Operadores comparativos ..............27 4.6.4 Otros operadores ................28 4.6.5 Caracteres de delimitación ..............28 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 6 Finalización del programa paralelo <KILL> ........... 51 Influencia del avance de proceso ............... 52 8.9.1 WAIT – Instrucción con tiempo <WaitTime> .......... 52 8.9.2 Instrucción condicional WAIT <WAIT>........... 53 8.9.3 WaitOnPath – Instrucción con tiempo <WaitOnPath> ......55 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 7 Override ......................97 10.5.1 Override en la unidad de mando manual <Ovr> ........97 10.5.2 Override dinámico <DynOvr> ............... 99 10.6 Rampas de aceleración ..................100 10.6.1 Ajuste de formas de rampa <Ramp> ........... 101 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 8 Entradas y salidas booleanas, plc_InBool, plc_OutBool ........136 15.2 Variables enteras de 32 bits, plc_Dint .............. 137 15.3 Posiciones, plc_AxisPos, plc_CartPos .............. 138 15.4 Sistemas de referencia, plcRefSys ..............139 15.5 Pausa programada <ProgHold> ................. 140 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 9 18.20 Establecer el bit en una variable WORD <SetBit> ..........165 18.21 Borrar el bit en una variable WORD <ResetBit> ..........166 18.22 Comprobar el bit en una variable WORD <CheckBit> ......... 167 19. Módulos ......................168 19.1 Funciones ......................169 19.2 Variable ......................169 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 10 Lectura del valor de salida, método Read ......... 191 19.8 Módulo de reloj CLOCK ..................192 19.8.1 Instanciación ..................192 19.8.2 Métodos ................... 193 19.8.3 Puesta en marcha del reloj, método Start ......... 194 19.8.4 Parada del reloj, método Stop ............194 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 11 Mensajes de los programas de eventos ............217 22. Puntos de conmutación simples ................ 219 22.1 Punto de conmutación simple con instrucción de movimiento, <DO> ....219 22.2 Punto de conmutación simple, <OnPosition> ............ 220 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 12 24.5.1 Tarea ....................253 24.5.2 Interface PLC ..................253 24.5.3 Programa secuencial ................ 254 Lista de instrucciones FTL ................. 256 Árbol de menús de las instrucciones FTL............261 Términos utilizados ................... 266 Índice ........................ 267 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 13: Introducción

    En este documento se describe el juego de instrucciones FTL (Festo Teach Language) del control multieje CMXR de Festo. La programación del control CMXR se realiza con el editor FTL en el plugin correspondiente de Festo Configuration Tool (FCT) o con la unidad de mando manual CDSA-D1-VX.
  • Página 14: Medidas De Seguridad

    Uso de la documentación Este documento está concebido para los usuarios y programadores de robots que funcio- nan con el sistema CMXR de Festo. Existe una introducción al manejo y a la programación. La formación correspondiente del personal es condición previa indispensable.
  • Página 15: Personal Cualificado

    Medidas de seguridad de este manual Advertencia ¡PELIGRO! La inobservancia puede tener como consecuencia daños materiales y lesiones físicas graves. Atención La inobservancia puede tener como consecuencia daños materiales graves. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 16: Medidas De Seguridad Para El Producto Descrito

    Si es necesario realizar trabajos de medición o de comprobación en la instalación, deberán ser efectuados por un electricista. Atención Sólo deben utilizarse repuestos autorizados por Festo. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 17: Edición De Programas

    Edición de programas Información general FTL es la sigla que se obtiene de Festo Teach Language. FTL es un lenguaje de programa- ción y sirve para programar los controles CMXR. FTL es un lenguaje de programación para robótica y sistemas de manipulación muy com- pleto pero fácil de aprender y dominar.
  • Página 18 La flecha inferior marca la instrucción activa del cálculo por adelantado de proceso. La distancia entre las dos flechas es el avance de proceso. Más información y ejemplos sobre el avance de proceso se describen en el capítulo 24.3 Control del avance de proceso. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 19: Estructura De Programa

    Estructura de programa Todos los programas FTL están guardados en la tarjeta de memoria (Compact Flash Card) del control multieje CMXR en el directorio “application\control\teachcontrol” (en adelante denominado “directorio de aplicación”). Los programas se disponen en una estructura de carpetas. Un proyecto contiene los programas de movimientos asignados. El número de proyectos y programas está...
  • Página 20: Proyecto Ftl Global

    Si el programa se guarda mediante la unidad de mando manual CDSA o mediante el editor FTL de Festo (en Festo Configuration Tool), el archivo de datos locales de programa se genera automáticamente. Si la generación de programa se efectúa con otro software, debe observar que se guarde el archivo de datos correspondiente para cada programa.
  • Página 21: Archivo De Datos Ftl " .tId

    3. Edición de programas Archivo de datos FTL “<nombre>.tid” En el sistema de mando CMXR, los datos sirven como variable y para la comunicación. La estructura de proyecto permite guardar los datos de una manera clara y limitar el acceso a ellos. Un archivo de datos se reconoce por la extensión de archivo “tid” y, como el archivo de programa, está...
  • Página 22: Datos Compartidos De Sistema

    En la figura siguiente se muestra el proyecto global “_global” enlazado con datos compartidos de proyecto y locales. Además, en el área de objetos compartidos de sistema también se muestran programas compartidos de sistema. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 23: Creación De Instancias De Variables

    Al descargar el proyecto/ programa o en caso de caída de tensión de alimentación se pierden los datos modificados en el programa. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 24 3. Edición de programas Nota Para guardar de manera permanente los valores de posición en la tarjeta de memoria puede utilizarse la instrucción FTL “SavePosition”. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 25: Estructura Del Lenguaje

    END_IF ELSIF ELSE GOTO LABEL WHILE END_WHILE LOOP END_LOOP RETURN KILL MAPTO WAIT BOOL DINT DWORD REAL STRING ARRAY El resto de tipos de datos creados a partir de estas claves también son palabras clave. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 26: Constantes Numéricas

    255 caracteres. Son válidos todos los caracteres ASCII. Ejemplo de una cadena de caracteres válida: "Control multieje CMXR-C1" Operadores y caracteres de delimitación Los operadores se utilizan en expresiones y describen cómo conectar los valores de variables y las constantes numéricas. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 27: Operadores Aritméticos

    Tabla 4.2 Operadores lógicos 4.6.3 Operadores comparativos Operador Significado < Menor que <= Menor o igual que Igual a <> No igual a >= Mayor o igual que > Mayor que Tabla 4.3 Operadores comparativos Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 28: Otros Operadores

    Caracteres de delimitación Operador Significado Asignación de valor para variables Carácter de separación para crear instancias de variables Carácter de enumeración en listas de parámetros para acceder a funciones o instrucciones FTL Tabla 4.5 Caracteres de delimitación Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 29: Tipos De Datos Básicos

    DINT Operaciones aritméticas, operaciones de comparación DWORD Operaciones de bits AND, OR, XOR, NOT, SHL, SHR, ROL, ROR, =, <> REAL Operaciones aritméticas, operaciones de comparación STRING Operaciones de comparación, + Tabla 5.2 Operaciones posibles Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 30: Tipo De Datos Booleano (Bool)

    Ejemplo: Variables: pos1 BOOL pos2 BOOL pos3 BOOL min1PosValid BOOL allPosValid BOOL Código de programa: allPosValid pos1 AND NOT pos2 AND NOT pos3 min1PosValid pos1 pos2 pos3 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 31: Tipos De Número Entero, Tipo De Datos Real, Tipos De Patrón De Bits

    Los paréntesis se utilizan para agrupar cálculos de acuerdo con el orden de procesamiento. Los paréntesis son procesados de dentro a fuera. Ejemplo: (Index < 10) (Index > 5) THEN END_IF Distance (xRow + 10) * Index Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 32: Cadenas De Caracteres (String)

    Si se realiza una operación que rebasa el tamaño de la matriz, aparece un aviso. Declaración de matrices: Sintaxis <nombre> : ARRAY [ <tamaño de la matriz> ] OF <tipo de datos> := ( <inicialización>) END_VAR Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 33 El siguiente ejemplo muestra una matriz de 10 elementos cuyo índice va de 3 a 12: Matrix3 ARRAY [3...12] DINT Dimensiones Toda matriz tiene, por lo menos, una dimensión, pero también puede tener varias dimen- siones. Las matrices multidimensionales se indican especificando sus dimensiones entre corchetes y separadas por comas. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 34: Inicialización De Matrices

    Con la palabra clave LOW se puede averiguar el índice de rango más bajo de una matriz y con la palabra clave HIGH, el índice de rango más alto. Sintaxis <variable : DINT> := LOW( <variable de matriz> ) <variable : DINT> := HIGH( <variable de matriz> ) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 35 // El índice tiene el valor 0 Index := LOW(Matrix2) // El índice tiene el valor 2 Index := HIGH(Matrix2) // El índice tiene el valor 0 Index := LOW(Matrix2[0]) // El índice tiene el valor 7 Index := HIGH(Matrix2[0]) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 36: Variables De Referencia (Mapeado)

    Ejemplo: La instrucción Ref_Index := 10 describe la variable Index_C con el valor 10. Nota Al leer una variable mapeada, se lee la variable asignada. De igual modo, al escribir en una variable mapeada, se escribe en la variable asignada. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 37: Declaración De Variables De Referencia

    Con la función IS_MAPPED se puede comprobar si una variable de referencia está vinculada a una variable. Si en el programa se utiliza una variable de referencia que no está vinculada, se producirá un error. Sintaxis IS_MAPPED (<variable de referencia>) : BOOL Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 38 La variable de referencia no está vinculada Esta función se utiliza, por ejemplo, al emplear variables de referencia en un subprograma, en cuyo caso la vinculación de variables se realiza fuera de dicho subprograma. Ejemplo: IS_MAPPED(Level) THEN ELSIF SetError(“Not mapped”) END_IF Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 39: Declaración De Variables

    Las variables reales también pueden inicializarse con valores enteros. Ejemplo de inicializaciones válidas: index DINT := 1 REAL := 3.1415 radius REAL := 10 flag BOOL := TRUE message STRING “Hello" Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 40: Expresiones

    (Índice de matriz) 3. NOT (Negación) 4. * / MOD AND (Multiplicación, división, módulo, Y lógico) 5. + - OR XOR (Adición, sustracción, O/EXOR lógicos) 6. < <= = <> >= > (Operaciones de comparación) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 41: Control De Programa

    (p. ej., >, <=,=). El enlace de varias comparaciones se estructura mediante los correspondientes niveles entre paréntesis. Para los ejemplos siguientes se utilizan las variables indicadas a continuación: Marker BOOL Flag1 BOOL Flag2 BOOL Flag3 BOOL Index DINT Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 42: Bifurcación

    Con la instrucción ELSIF pueden formularse varias condiciones. Con la instrucción ELSE es posible definir instrucciones que pueden saltarse si las condiciones no son pertinentes. La instrucción IF se cierra con la instrucción END_IF. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 43: Instrucciones De Salto

    // ninguna señal definida END_IF Instrucciones de salto En los programas FTL es necesario efectuar saltos con frecuencia. Estos saltos pueden ser condicionales o incondicionales. Para realizar un salto, se requiere un punto inicial y un destino. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 44: Marca De Salto

    (LABEL). Sólo entonces puede programarse la instrucción GOTO. 8.5.2 Salto condicional <IF…GOTO> Con la instrucción IF…GOTO se ejecutan saltos condicionales. Esta instrucción requiere, como la bifurcación del programa IF…THEN, una condición que debe cumplir el tipo de datos BOOL. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 45: Salto Absoluto

    Atención La programación de bucles sin fin puede reducir el comportamiento de operación del control CMXR. Los bucles sin fin deben poseer instrucciones como Wait o WaitTime para no bloquear el control CMXR.
  • Página 46: Instrucción Loop

    Después de cada ciclo, el valor de las variables de bucle suma uno y el valor final se calcula de nuevo. El bucle puede contener un número ilimitado de instrucciones. Sintaxis LOOP <número> DO <instrucciones> END_LOOP Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 47: Subprogramas

    último se activa desde un programa y no directamente desde el proyecto. Proceso: Mientras se procesa el subprograma, el programa que lo ha llamado espera a que acabe. Al finalizar el subprograma se retorna automáticamente al programa superior, que se reanuda. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 48: Llamada De Subprograma

    No es posible realizar llamadas recursivas de programas. Por tanto, un programa no se puede llamar a sí mismo. Además, tampoco es posible llamar al programa que está llamando. Sintaxis CALL <nombre del programa> ( ) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 49: Retorno Al Programa

    éstos terminan. El programa principal se reanuda. Ejemplo: CALL CheckPart() // Llamar al subprograma CheckPart partOk THEN partStatus := 10 // Variable global para el valor de retorno RETURN // Adelanto del fin de programa END_IF Lin(pos3) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 50: Programas Paralelos

    8. Control de programa Programas paralelos Un programa del proyecto activo o del proyecto global también puede iniciarse como proceso paralelo. El sistema operativo del CMXR se encarga del proceso en paralelo de estos programas gracias al sistema interno multitarea. Nota Las instrucciones de desplazamiento en una cinemática sólo son...
  • Página 51: Ejecución Del Programa Paralelo

    Un programa paralelo activo puede terminarse con la instrucción “KILL” emitida desde el programa que lo ha llamado. Primero se detienen el programa y la cinemática, luego el programa finaliza. Sintaxis KILL <nombre del programa> La instrucción RETURN en programas paralelos también provoca su terminación. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 52: Influencia Del Avance De Proceso

    Lin(pos1) // Avanzar sobre posición de sujeción Lin(pos2) // Avanzar a posición de la pinza Gripper.Set() // Cerrar pinza WaitTime(70) // Esperar 70 ms de tiempo de sujeción Lin(pos1) // Avanzar sobre posición de sujeción Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 53: Instrucción Condicional Wait

    El procesamiento de la instrucción WAIT se efectúa en el avance de proceso, es decir cuando el control CMXR calcula por adelantado. Si la condición no se cumple, el avance de proceso (cálculo por adelantado) se detiene hasta que se cumpla la condición de la instrucción WAIT.
  • Página 54 Pos2 Pinza por vacío Pos3 Pos1 Pos4 Sensor Bandeja Pieza El sensor detecta si hay una pieza sobre la bandeja. Si hay una pieza preparada, el sistema de manipulación la recoge. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 55: Waitonpath - Instrucción Con Tiempo

    (por ejemplo la conmutación de una salida o la descripción de una variable) con la ejecución principal del programa. Sintaxis WaitOnPath ( <timeMS> : DINT ) Parámetro Significado Unidad time Tiempo de espera Tabla 8.1 Parámetro de la instrucción WaitOnPath Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 56: Waitonpos - Instrucción Con Tiempo

    El parámetro de la parte porcentual es opcional. Si no se especifica, tendrá un valor de 100%. Esto tendrá como consecuencia una parada en la trayectoria. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 57: Waitonmainrun - Esperar A La Ejecución Principal

    WaitOnMainRun y, a continuación, se describe la variable plc_InBool[3], que va al PLC. Lin(pos1) // Ir a pos1 Lin(pos2) // Ir a pos2 WaitOnMainRun() // Esperar a la ejecución principal plc_InBool[3] := TRUE // Señal a PLC Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 58: Instrucción Do

    FTL situada antes de ella. La eje- cución se realiza incondicionalmente. La línea de programa sólo debe contener una instrucción DO, detrás de la cual puede haber exactamente una instrucción FTL. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 59 Ejemplo de establecimiento de una salida: Al alcanzarse la pos2 se establece la salida del módulo “Vacuum” (vacío). Lin(pos1) Lin(pos2) Vacuum.Set() Lin(pos3) Ejemplo de descripción de variables en el PLC: Lin(pos1) SetVel(dynCart, 1000)) plc_Dint[3] := 5 Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 60: Insertar Comentarios

    Una instrucción FTL no se procesa en el programa, es decir, el contenido no afecta de ningún modo. El contenido de la instrucción de programa se somete a la verificación de sintaxis del compilador. Si, p. ej., se borra una variable utilizada, se emite un error al arrancar el programa. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 61 IF..THEN…ELSE, deben desactivarse todas las líneas de programa correspondientes. En la figura siguiente se muestra la máscara del programa de la unidad de mando manual con instrucciones del programa desactivas entre las líneas 8 y 10: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 62: Instrucciones De Movimiento

    2. CARTPOS para la indicación en el sistema de coordenadas cartesianas. El número de ejes en CMXR está limitado a seis. Estos ejes pueden distribuirse en ejes cinemáticos y auxiliares. Las posiciones de todos los ejes se guardan en variables de posición.
  • Página 63: Posición De Eje

    := (100, 50, 30, 0, 0, 0, 0, 0, 0) posA1 REAL posA2 REAL Programa: Lin(startPos) // Avanzar a startPos posA1 startPos.a1 // Guardar en otra ubicación el valor de eje 1 posA2 startPos.a2 // Guardar en otra ubicación el valor de eje 2 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 64 Posición eje 5, no existe : REAL Posición eje 6, no existe : REAL Posición eje auxiliar 1, no existe : REAL Posición eje auxiliar 2, no existe : REAL Posición eje auxiliar 3, no existe Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 65: Posición Cartesiana

    Ejemplo: Variable: startPos CARTPOS := (1050, 130, 30, 0, 0, 0, 0, 0, 0) newPos CARTPOS := (0, 0, 0, 0, 0, 0, 0, 0, 0) posX REAL posY REAL Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 66 X, Y y Z. Como no hay ejes manuales, no es posible orientar la herramienta. La programación de las variables a, b, c, aux1, aux2 o aux3 en la indicación de posición del tipo de datos CARTPOS no tiene efecto alguno. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 67: Programación Tipo Teach-In De Variable De Posición

    Para programar por teach-in una variable de posición es necesario que el control multieje CMXR esté situado en el modo de funcionamiento MANUAL y que la variable a programar por teach-in esté marcada. 1. Hacer clic en la variable y se mostrará...
  • Página 68 AXISPOS o CARTPOS Tabla 9.1 Parámetro de la instrucción PTP La indicación de posición puede ser cartesiana o en el sistema de coordenadas de ejes (en relación con cada eje). El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: Debe posicionarse un pórtico cartesiano con tres ejes X, Y, Z y un eje de rotación con...
  • Página 69 Como la herramienta posee una asimetría con el eje Z, esta trayectoria se comporta de un modo inesperado ya que, con la interpolación síncrona, todos los ejes se desplazan juntos a su punto de destino sin tener en cuenta la trayectoria descrita. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 70: Programación Tipo Teach-In Del Movimiento Pt

    Una aplicación posible es, p. ej., el posicionamiento relativo dentro de una retícula, como con una paleta. Sintaxis PtpRel ( <Dist> : AXISDIST o CARTDIST) Parámetro Significado Unidad Dist Distancia relativa que debe recorrerse AXISDIST o CARTDIST Tabla 9.2 Parámetro de la instrucción PtpRel Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 71: Llamada De Ciclo De Comprobación

    9. Instrucciones de movimiento La indicación de distancia puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: En una aplicación de manipulación, la pieza se desplaza a cuatro posiciones, cada una a una unidad de medición.
  • Página 72: Movimiento De Un Eje

    Eje físico seleccionado que Enumeración con los valores A1 debe desplazarse a A9 para los ejes 1 a 9 Posición de destino absoluta Unidad de los ejes definidos Tabla 9.3 Parámetros de la instrucción MoveAxisPtp Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 73 := (300, 0, 250, 0, 0, 0, 0, 0, 0) takeAbove CARTPOS := (350, 0, 145, 0, 0, 0, 0, 0, 0) pos2 CARTPOS := (575, 0, 250, 0, 0, 0, 0, 0, 0) takePos REAL := 96.5 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 74: Programación Tipo Teach-In De La Posición Con Moveaxisptp Y Moveaxiscart

    Pos. Si se ha asignado una variable REAL al parámetro Pos, se escribe el valor en esta variable. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 75 Éste se muestra en el cuadro de selección en la página de posición. En la programación por teach-in de la posición de eje de la instrucción MoveAxisPtp, el sistema de referencia seleccionado carece de importancia. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 76: Movimiento Lineal

    9. Instrucciones de movimiento 9.5 Movimiento lineal <Lin> Con un movimiento lineal, el control multieje CMXR calcula una recta que lleva de la posición actual (posición inicial) a la posición programada (posición de destino). Este movimiento se calcula y ejecuta teniendo en cuenta los valores de trayectoria ajustados, como, p.
  • Página 77 Sin embargo, no está previsto que la brida de herramienta discurra por la trayectoria en el plano X-Y. Esta trayectoria se obtiene de la combinación de la cinemática y del vector del TCP, y se calcula mediante la transformación interna de coordenadas. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 78: Programación Tipo Teach-In Del Movimiento Lin

    Una aplicación posible es, p. ej., el posicionamiento relativo dentro de una retícula, como con una paleta. Sintaxis LinRel (<Dist> : AXISDIST o CARTDIST) Parámetro Significado Unidad Dist Posición de destino relativa AXISDIST o CARTDIST Tabla 9.6 Parámetro de la instrucción LinRel Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 79 9. Instrucciones de movimiento La indicación de distancia puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: Un contorno contiene tramos repetibles. Estos tramos pueden describirse de manera relativa. Este tipo de aplicación se resuelve con comodidad utilizando una programación de bucles.
  • Página 80: Movimiento Circular Con Punto De Apoyo

    El radio de la trayectoria circular se obtiene a partir de un cálculo interno con punto inicial, punto de apoyo y punto final de la trayectoria circular. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 81: Definición De Planos

    La trayectoria circular se efectúa en un plano definido a partir de los tres puntos: punto inicial, punto de apoyo y punto final. Con esta definición se extiende el plano en el espacio donde se va a describir la trayectoria circular. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 82 En la figura se muestra una trayectoria circular con sus tres puntos de apoyo, que definen un plano en el espacio donde se encuentra la trayectoria circular. Nota La trayectoria circular siempre está en un plano. No es posible realizar una interpolación helicoidal con una interpolación adicional perpendicular al plano. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 83: Instrucción Circular Con Punto De Apoyo

    Tabla 9.7 Parámetros de la instrucción CircIp La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Advertencia La instrucción círculo requiere la indicación del punto de apoyo y el final.
  • Página 84 := (1050, 400, 0, 0, 0, 0, 0, 0, 0) EndPos CARTPOS := (950, 300, 0, 0, 0, 0, 0, 0, 0) Programa: Lin(pos1) // Aproximar a punto inicial CircIp(IpPos, EndPos) // Movimiento circular en punto final Lin(pos2) // Retirada Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 85: Instrucción Circular Con Punto De Apoyo, Aproximación Ptp

    Punto final del arco AXISPOS o CARTPOS Tabla 9.8 Parámetros de la instrucción PtpToCircIp La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 86: Aproximación Ptp, Movimiento Circular Cartesiano

    := (950, 300, 0, 0, 0, 0, 0, 0, 0) Pos1 CARTPOS := (455, 300, 0, 0, 0, 0, 0, 0, 0) Programa: // Aproximación PTP, movimiento circular cartesiano PtpToCircIp(StartPos, IpPos, EndPos) Lin(Pos1) // Retirada Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 87: Instrucción Circular Con Punto De Apoyo, Avance Lineal

    AXISPOS o CARTPOS Tabla 9.9 Parámetros de la instrucción LinToCircIP La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: Se debe recorrer el contorno siguiente con una cinemática: Eje Y Posición inicial StartPos...
  • Página 88: Aproximación Lineal, Movimiento Circular Cartesiano

    La programación tipo teach-in se realiza siempre en una variable de posición. Para la programación tipo teach-in de otras posiciones, debe hacerse clic en la posición correspondiente para marcarla. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 89: Detención Del Movimiento

    Una vez detectado el estado, la instrucción StopMove detiene el movimiento. En el capítulo 24.1 Detención de movimientos en la página 237 se da un ejemplo de utilización de la instrucción StopMove. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 90: Detención Del Programa

    La cinemática se detiene con la máxima rampa de frenado definida para detener la cinemática. La reducción de la dinámica por un override no afecta a la detención. Sintaxis StopProgram() Ejemplo: Vel(dynCart, 1000) Lin(pos1) Lin(pos2) SetInfo(“insert workpiece and press start”) StopProgram() Lin(pos3) CALL Conture1 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 91: Instrucciones De Dinámica

    Dentro del programa, los valores pueden ser sustituidos en cualquier momento por las siguientes instrucciones de dinámica. Gráfica de ajustes previos de los valores dinámicos en Festo Configuration Tool: Valores estándares Punto a punto: Estándar...
  • Página 92: Limitación Automática De La Dinámica, Limitador De La Dinámica

    Estos valores máximos están guardados en la configuración de los diferentes ejes. El control CMXR cuenta con un limitador de los valores dinámicos que recibe el nombre de “limitador de la dinámica”. Este limitador opera en el cálculo por adelantado del programa FTL y compara constantemente los valores dinámicos que se deben recorrer con la máxima...
  • Página 93: Velocidades

    := (100, 60, 0, 0, 0, 0, 0, 0, 0) Programa: Vel(dynPtp, 30) // Velocidad para PTP al 30 % Ptp(axis0) Vel(dynCart, 500) // Velocidad de trayectoria a 500 mm/s Lin(axis1) speed := 85 Vel(dynPtp, speed) // Velocidad para PTP al 85% Ptp(axis3) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 94: Aceleración

    AXISPOS := (60, 60, 0, 0, 0, 0, 0, 0, 0) pos2 AXISPOS := (100, 60, 0, 0, 0, 0, 0, 0, 0) Programa: Ptp(pos0) Acc(dynPtp, 30, 30) // Aceleración para PTP al 30% Ptp(pos1) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 95: Sacudida

    AXISPOS := (-60, -60, 0, 0, 0 ,0, 0, 0, 0) pos1 AXISPOS := (60, 60, 0, 0, 0, 0, 0, 0, 0) pos2 AXISPOS := (100, 60, 0, 0, 0, 0, 0, 0, 0) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 96 10. Instrucciones de dinámica Programa: Ptp(pos0) Jerk(dynPtp, 50) // Sacudida para PTP al 50% Ptp(pos1) Jerk(dynCart, 5000) // Sacudida en la trayectoria a 5000 mm/s³ Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 97: Override

    Con la instrucción Ovr puede ajustarse directamente un valor de override en el programa. Éste tiene el mismo efecto que una modificación efectuada con las teclas de la unidad de mando manual. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 98 No es posible un avance aproximado hasta el siguiente segmento de la trayectoria. Ejemplo: // Ajuste del override al 100% Ovr(100) Lin(pos1) Lin(pos2) // Ajuste del override al 60% Ovr(60) Lin(pos3) Lin(pos4) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 99: Override Dinámico

    Significado Unidad Value Valor del override dinámico Porcentaje Tabla 10.8 Parámetro de la instrucción DynOvr Nota El override no modifica la trayectoria descrita. El valor programado no repercute sobre el cálculo por adelantado del programa. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 100: Rampas De Aceleración

    Forma de rampa trapezoidal con Forma de rampa trapezoidal un factor aproximado de 0,1 con el factor 0,5 Si no se indica el parámetro opcional, éste se ajusta automáticamente al factor 0,5 y se obtiene el triángulo de aceleración. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 101: Ajuste De Formas De Rampa

    Ramp( <Ramptype> : ENUM, OPT <Param> : REAL) Parámetros Significado Unidad Ramptype Tipo de rampa, selecciona la forma de Enumeración: rampa TRAPEZOID SINE SINESQUARE MINJERK Param Parámetro para rampas trapezoidales ----- Tabla 10.9 Parámetros de la instrucción Ramp Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 102: Selección De La Rampa Trapezoidal

    área de avance aproximado. El control multieje CMXR calcula la velocidad posible de trayectoria basándose en la trayectoria y en los valores dinámicos máximos de la mecánica. El límite de la velocidad posible de trayectoria lo determina la dinámica de la mecánica.
  • Página 103 Esto significa que si la cinemática no alcanza toda su velocidad porque un override la limita, se activará dicha monitorización y se producirá un error. Ejemplo: Programa: Lin(pos1) VconstOn(25, TRUE) Lin(pos2) Lin(pos3) VconstOff Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 104: Desconexión De La Velocidad De Trayectoria Constante

    VconstOff ( ) Nota La interrupción del programa de usuario no provoca la desconexión automática de la monitorización de la velocidad de trayectoria. Al volver a arrancar el programa de usuario debe desconectarse siempre primero la monitorización. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 105: Instrucciones De Avance Aproximado

    El avance aproximado se efectúa de dos maneras: 1. Avance aproximado por velocidad basado en la velocidad. 2. Avance aproximado por posición basado en una distancia predefinida. En las páginas siguientes se describen estos tipos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 106: Segmentos Cero

    // Nuevo posicionamiento en pos2 = no es posible el avance aproximado Lin(pos2) Lin(pos3) Puesto que la posición pos2 se ha programado más de una vez, en este punto del programa se produce una parada en la trayectoria. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 107: Área Extrema

    El avance aproximado está limitado al 50% de la longitud del segmento de trayectoria. Si el área de avance aproximado es mayor que el límite máximo permitido, el control multieje CMXR la reduce automáticamente al 50% de la longitud del segmento de trayec- toria.
  • Página 108: Avance Aproximado Por Velocidad

    100%. La siguiente figura muestra los perfiles de velocidad de un desplazamiento hasta las posiciones 1 y 2. Para el área de avance aproximado se han definido distintos valores. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 109 área de avance aproximado no es un radio, sino una curva de polinomio que se deriva de los valores dinámicos actuales de los ejes. Ejemplo: OvlVel(100) // Avance aproximado al 100 % Lin(pos1) Lin(pos2) OvlVel(75) // Avance aproximado al 75% Lin(pos3) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 110: Avance Aproximado Por Geometría

    La trayectoria en el área de avance aproximado no es un radio, sino un polinomio de quinto grado. Este polinomio genera la trayectoria suave máxima posible, lo que no puede hacerse con un arco de círculo. Sintaxis OvlCart (<Distance> : REAL) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 111 5 mm. Área de avance aproximado Vel(dynCart, 300) // Velocidad de trayectoria a 300 mm/s VconstOn(25, TRUE) // Conectar vel. trayectoria const. OvlCart(5) // Ajustar área de avance aproximado Lin(p1) Lin(p2) Lin(p3) Lin(p4) Lin(p5) Lin(p6) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 112: Sistemas De Referencia (Desplazamiento Del Punto Cero)

    Nota El encadenado de sistemas de referencia debe efectuarse con precaución. En ocasiones este mecanismo es útil para una programación eficiente aunque dificulta la lectura del programa y el anidamiento descuidado puede provocar colisiones. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 113: Datos Del Sistema De Referencia

    RefSys. Con el parámetro RefSys puede indicarse cualquier tipo de datos. A continuación se describen las instrucciones para activar un sistema de referencia. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 114: Sistema De Referencia Con Valores Directos

    Para relacionar la cinemática con el sistema de coordenadas universales, se debe establecer una referencia con la variable de sistema world. Ejemplo: Datos: refsysdata0 REFSYSDATA := (MAP(world), 100, 150, 0, 0, 0, 0) Programa: SetRefSys(refsysdata0) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 115: Sistema De Referencia Con Tres Puntos

    Con el parámetro baseRs puede indicarse otra referencia, la cual tiene efecto aditivo en el sistema de referencia. Para relacionar la cinemática con el sistema de coordenadas universales, se debe establecer una referencia con la variable de sistema world. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 116: Programación Tipo Teach-In Del Sistema De Referencia Setrefsys3P

    180 grados del eje Z. Estos tres parámetros se pueden programar por teach-in con la ayuda de la unidad de mando manual o del software de emulación. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 117 Para la programación tipo teach-in de otra posición, deberá marcarse haciendo clic en ella. Nota El sistema de referencia seleccionado en la página de posición carece de importancia con la instrucción SetRefSys3P. La referencia al sistema de referencia se establece mediante el parámetro baseRs. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 118: Sistema De Referencia Universal

    Nota Esta instrucción sólo funciona en combinación con el PLC integrado. Se puede encontrar más información sobre la instrucción y la función de seguimiento a ella asociada en la documentación especial “Programación FTL - Seguimiento”. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 119: Ejemplo

    := 1500 // Desplazamiento de paleta 2 en X refPal2.y := 300 // Desplazamiento de paleta 2 en Y Lin(pos1) // Avance a seguridad en el sistema universal SetRefSys(refPal1) // Activar desplazamiento de paleta 1 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 120 12. Sistemas de referencia (desplazamiento del punto cero) CALL Feed() // Llamar subprograma de alimentación de piezas SetRefSys(refPal2) // Activar desplazamiento de paleta 2 CALL Feed() // Llamar subprograma de alimentación de piezas SetRefSysWorld() // Activar sistema universal Lin(pos1) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 121: Referenciación De Una Cinemática

    Durante el recorrido de referencia debe observarse que los ejes participantes pueden moverse con libertad. Además, deben seleccionarse los valores dinámicos apropiados para estos movimientos de modo que el recorrido de referencia sea razonable. En este caso, unos valores dinámicos elevados no son razonables. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 122 Si se especifica el método de recorrido de referencia 99, se utilizarán los parámetros de recorrido de referencia tal como fueron guardados en el accionamiento mediante Festo Configuration Tool (FCT). En ese caso, el recorrido de referencia se realiza igual que durante la puesta en funcionamiento de los diferentes ejes.
  • Página 123: Recorrido De Referencia Asíncrono

    Para determinar si la referenciación ha acabado o para leer su estado se utilizan las instrucciones WaitRefFinished e IsAxisReferenced. Sintaxis RefAxisAsync(<axis>:AXIS, OPT <refData>:REFDATA, OPT <timeout>:REAL) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 124 Si se especifica el método de recorrido de referencia 99, se utilizarán los parámetros de recorrido de referencia tal como fueron guardados en el accionamiento mediante Festo Configuration Tool (FCT). En ese caso, el recorrido de referencia se realiza igual que durante la puesta en funcionamiento de los diferentes ejes.
  • Página 125: Espera Al Final Del Recorrido De Referencia

    WaitRefFinished para garantizar la ejecución subsiguiente del programa. Si no se aguarda al final del recorrido de referencia, el cálculo por adelantado del programa puede dar lugar a instrucciones que provoquen errores. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 126: Interrogación Del Estado De Un Eje

    Parámetro Significado Unidad Axis Eje seleccionado objeto de la interrogación Enumeración A1, A2, hasta A9 Tabla 13.5 Parámetro de la instrucción IsAxisReferenced Si el eje indicado está referenciado se emite TRUE, de lo contrario, FALSE. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 127: Herramientas

    14. Herramientas Herramientas El control multieje CMXR permite definir los datos de longitud de una herramienta. Estos datos se describen en forma de un vector de seis dimensiones. De ese modo puede asignarse una orientación a la herramienta, además de las dimensiones. La orientación se define a partir del método de Euler ZYZ.
  • Página 128 A = 0 Asimetría B = 0 en Z C = 0 La orientación del sistema de coordenadas Asimetría en X de herramienta no cambia. Si es necesario, deberá ajustarse con los parámetros A, B y C. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 129 El programador debe asegurarse de asignar correctamente los datos TCP a la herramienta. El control multieje CMXR no conoce ninguna referencia de los datos de herramienta en relación a la herramienta física.
  • Página 130: Activación De Datos De Herramienta

    Estos datos TCP actuales se incluyen en el cálculo de la planifi- cación de trayectoria de las instrucciones de movimiento siguientes. A continuación se presenta un ejemplo en el que se describe el comportamiento de los datos de herramienta aplicados a un eje giratorio neumático. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 131 Con ayuda de este eje puede girarse la herramienta a una posición fija. Este movimiento giratorio modifica la orientación de la herramienta. Para que el control multieje CMXR pueda calcular un movimiento cartesiano en el espacio teniendo en cuenta la posición del TCP debe indicarse la orientación nueva después del movimiento giratorio.
  • Página 132 Nuestra cinemática cartesiana debe desplazarse con la herramienta vertical de una posición 1 a otra 2. A continuación, el eje giratorio gira la herramienta. Ahora, la herramienta girada debe desplazarse a la posición 2. Desplazamiento de pos1 a pos2: Tool(tool1) Lin(pos1) Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 133 El movimiento giratorio provoca que el Tool Center Point (TCP) se desplace hacia arriba. Debido al eje neumático, el control no puede efectuar automáticamente movimientos de compensación. Para aproximarse a la posición 2 debe definirse la orientación nueva de la herramienta. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 134 Con el eje giratorio eléctrico se programa la orientación deseada dentro de una instrucción de desplazamiento. A continuación, el control CMXR calcula automáticamente la posición de los ejes teniendo en cuenta la orientación programada. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 135: Interface Profibus

    15. Interface PROFIBUS Interface PROFIBUS El CMXR puede ser controlado por una unidad de control de nivel superior (PLC/IPC) mediante la interface PROFIBUS. Además, a través de ella pueden escribirse y leerse datos en forma de variables. Todos estos datos son datos compartidos de sistema y están a disposición de todos los programas FTL.
  • Página 136: Entradas Y Salidas Booleanas, Plc_Inbool, Plc_Outbool

    La interface dispone de 16 señales de entrada y salida digitales que en adelante se verán siempre desde la perspectiva del CMXR. Las señales están disponibles en forma de variable booleana en el control. Estas señales booleanas se intercambian cíclicamente con la unidad de control de nivel superior.
  • Página 137: Comprobar Bit 5 De Plc

    ésta. Las variables enteras están guardadas en una matriz a la que se accede a través de los índices 0 a 255. Sintaxis plc_Dint [ <Arrayindex> ] : DINT Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 138: Posiciones, Plc_Axispos, Plc_Cartpos

    La interface soporta dos tipos de datos de posición. Desde el control externo es posible enviar posiciones de eje y posiciones cartesianas al control multieje CMXR. El número máximo es de 256 posiciones de eje y 256 posiciones cartesianas. Estas variables no se someten a un intercambio de datos cíclico y el control externo puede escribirlas o leerlas...
  • Página 139: Sistemas De Referencia, Plcrefsys

    Los sistemas de referencia que se establecen a través de la interface externa sólo pueden enlazarse dentro de los sistemas de referencia de la interface. No es posible referenciar a un sistema de referencia definido fuera de la interface. Ejemplo: Lin(pos2) SetRefSys(plc_RefSys[3]) Lin(pos3) Lin(pos4) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 140: Pausa Programada

    El programa del ejemplo se aproxima a diferentes posiciones estando ajustado un avance aproximado por velocidad del 100%. Si la señal de la pausa programada está activada, el programa se para en este punto. Con ello se obtiene el siguiente desarrollo de velocidad: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 141 15. Interface PROFIBUS Desarrollo con pausa programada: Tiempo entre la parada y la reanudación de la marcha Velocidad Tiempo pos1 pos2 pos3 pos4 pos5 Desarrollo sin pausa programada: Velocidad Tiempo pos1 pos2 pos3 pos4 pos5 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 142: Interface Ftl Con Plc Interno (Sólo Para Controlador Multieje Con Codesys)

    Para poder crear también procesos individuales en paralelo a los programas de movi- mientos, el control CMXR posee un PLC CoDeSys integrado, que permite una programación según IEC 61131-3. La descripción de rendimiento que figura en el manual del sistema del correspondiente control CMXR detalla en qué...
  • Página 143: Ejemplo Con Variables Del Sistema

    PLC debe procurarse que todos los datos necesarios estén a disposición del programa FTL en el momento adecuado. De ser necesario, deben implementarse medidas como, p. ej., esperar a datos especiales y, de este modo, detener el cálculo por adelantado. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 144: Ejemplo Con Variables Del Sistema E Instrucción Map

    // Procesar pieza B CALL PartTypeB END_IF CycleFinished := TRUE // Confirmación de tareas resueltas = TRUE Lin(Home) Nota Mediante la utilización de variables de referencia y de la instrucción MAP, los programas son más legibles. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 145: Sistema De Comunicación

    17.1 Textos de mensaje La programación en FTL (Festo Teach Language) permite generar mensajes de información, advertencia y error desde el programa de movimientos. El propio usuario define libre- mente los textos de mensaje como cadena de caracteres (STRING). Esta cadena de caracteres también puede contener entradas variables en forma de dos parámetros como...
  • Página 146 En un programa se crean dos variables con valores asignados. Estos valores se emiten con la instrucción SetInfo. Variables: param1 DINT := 7 param2 REAL := 3.48 Código de programa: SetInfo(“Sensor %1, pressure %2 bar“, param1, param2) Se visualiza el siguiente texto informativo: “Sensor 7, pressure 3,48 bar”. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 147: Información

    Sólo sirve para informar. Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetInfo ("Cycle %1 finished, Value %2", cycle, pressure) Indicación en la unidad de mando manual: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 148: Advertencia

    Un mensaje de advertencia no influye en el movimiento de ningún modo. Sólo sirve para informar. Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetWarning("Cycle %1 finished, Value %2",cycle, pressure) Indicación en la unidad de mando manual: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 149: Mensaje De Error

    Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetError("Cycle %1 error, pressure %2", cycle, pressure) Indicación en la unidad de mando manual: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 150 Si aparece un mensaje de error, el texto de error se visualiza también en la cabecera de la unidad de mando manual. Además, el LED de error de la unidad de mando manual se ilumina en rojo. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 151: Funciones

    AXISPOS := (0, 0, 0, 0, 0, 0, 0, 0, 0) axis1 AXISPOS := (60, -120, 0, 0, 0, 0, 0, 0, 0) axis2 AXISPOS := (-120, -120, -250, 0, 0, 0, 0, 0, 0) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 152: Lectura De La Posición De Destino

    Los valores no se guardan en el archivo de datos de la tarjeta de memoria. Los valores se pierden cuando se deselecciona el programa o proyecto. Para guardar la posición puede utilizarse la instrucción SavePosition. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 153: Memorización Del Valor De Posición De Manera Permanente

    (<valor de fecha y hora> : DINT) := Time ( ) Esta instrucción lee la fecha y hora del sistema del control y lo devuelve como valor DINT. Ejemplo: value := Time() // Leer la hora y la fecha actuales del sistema Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 154: Conversión De Un Valor De Fecha Y Hora En Texto

    Indicación opcional, valor de fecha y Segundos hora que debe convertirse Tabla 18.4 Parámetro de la función TimeStr Ejemplo: str_Time := TimeToStr() // Leer la hora y la fecha actuales del sistema Devolución: str_Time “Mon Feb 13 11:23:44 2006“ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 155: Seno

    ángulo y el cateto opuesto o la hipotenusa. Si no se conoce el ángulo, el CMXR prepara la función arco seno. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto opuesto y de la hipotenusa.
  • Página 156: Coseno

    ángulo y el cateto adyacente o la hipotenusa. Si no se conoce el ángulo, el CMXR prepara la función arco coseno. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y de la hipotenusa.
  • Página 157 := 30 // Cateto adyacente alpha := 23.5 // Ángulo alfa / COS(alpha) // Cálculo de la hipotenusa := 45.89 // Cateto adyacente := 145.67 // Hipotenusa value alpha := ACOS(value) // Cálculo del ángulo Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 158: Tangente

    ángulo y el cateto adyacente o el cateto opuesto. Si no se conoce el ángulo, el CMXR prepara la función arco tangente. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y del cateto opuesto.
  • Página 159: Cotangente

    El tramo desconocido se calcula conociéndose el ángulo y el cateto adyacente o el cateto opuesto. Si no se conoce el ángulo, el CMXR prepara la función arco cotangente. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y del cateto opuesto.
  • Página 160: Cálculo Del Ángulo Contenido

    La función logaritmo calcula el logaritmo natural del argumento transferido. Sintaxis (<logaritmo natural> : REAL) := LN (<valor> : REAL) 18.12 Exponente <EXP> La función exponencial calcula el valor e(x). Sintaxis (<resultado> : REAL) := EXP (<valor>:REAL) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 161: Valor Absoluto

    C² = A² + B² o C = √(A² + B²) Ejemplo de programa: := 152.67 // Longitud del cateto A := 63.12 // Longitud del cateto B value := SQRT(value) // Cálculo de la hipotenusa Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 162: Desplazamiento De Bits

    Mask se desplaza 3 bits a la derecha. Por la izquierda se insertan 3 bits con el valor “0”. Contenido de la variable: 1001 1111 0000 1100 1111 1111 1001 1100 Se obtiene el patrón de bits: 0001 0011 1110 0001 1001 1111 1111 0011 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 163: Rotación De Bits

    Mask gira 4 bits a la derecha. En el lado izquierdo se insertan de nuevo los 4 bits. Contenido de la variable: 1011 1111 0110 1001 0011 000 1001 1010 Se obtiene el patrón de bits: 1010 1011 1111 0110 1001 0011 000 1001 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 164: Conversión De Un Valor En Una Cadena

    Convierte un único carácter en un valor ASCII. Sintaxis (<variable> : DINT / DWORD) := ORD (<valor> : STRING) Ejemplo: Con la siguiente instrucción se asigna a la variable Dint1 el valor 65. Dint1 ORD(“A”) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 165: Establecer El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: // Ajustar la variable a 0 mask := 16#0000 // Ajustar el tercer bit en TRUE mask := SetBit(mask, 2) // Mask posee el valor 2#0000 0100 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 166: Borrar El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: // Ajustar la variable a 2#0000 1111 mask := 16#000F // Ajustar el primer bit en FALSE mask := ResetBit(mask, 0) // Mask posee el valor 2#0000 1110 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 167: Comprobar El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: CheckBit(mask, 1) THEN // Estado TRUE SetInfo("Bit 1 está fijado”) ELSE // Estado FALSE SetInfo("Bit 1 no está fijado”) END_IF Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 168: Módulos

    Tipo de módulo Presión: tipo valor analógico Valor analógico Peso: tipo valor analógico Instanciación de módulo en el programa de aplicación Declaración de una instancia de módulo <nombre de instancia> : <tipo de instancia> (parámetro) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 169: Funciones

    Para acceder a los datos de algunos módulos pueden utilizarse variables o funciones indistintamente. Cada tipo de acceso requiere un tiempo de ejecución diferente. En el capítulo dedicado a cada módulo se ofrece más información. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 170: Comportamiento Del Tiempo De Operación

    último punto donde aún sea posible reanudar el movimiento. El movimiento no se detiene sino que avanza continuamente. No es posible el avance aproximado a los movimientos siguientes. Nota Si no se especifica el parámetro, se supone FALSE. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 171: Módulo De Entrada Digital Din

    Instanciación con el editor FTL La instanciación se efectúa en el diálogo para crear variables seleccionando <tipo:> (DIN) e introduciendo el <identificador:> (Sensor). En la línea <MAPTO DINPORT> se activa la referencia real a una entrada digital configurada. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 172: Instanciación Con La Unidad De Mando Manual

    Encontrará más información y un ejemplo sobre la generación de mensajes de error en el capítulo 24.2 Empleo de los módulos de entrada y salida. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 173: Métodos

    En la unidad de mando manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Digital Inputs”. En la figura se muestra la selección de métodos del módulo DIN de la unidad de mando manual. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 174: Espera A Estado, Métodos Wait/Waitn

    El valor de retorno sigue siendo TRUE aunque la entrada hubiese cambiado entre tanto a FALSE. El estado del flanco se determina independientemente del ciclo del programa FTL y se ejecuta en un ciclo propio. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 175: Método Resetrisingedge Para Borrar Flancos

    Para instanciar el módulo de salida digital se requiere la referencia de hardware de la salida digital. Ésta se indica con el parámetro <output> durante la instanciación. Sintaxis <nombre de instancia> .DOUT( <timeout> : DINT, <RisingEdge> : BOOL, <Output> : MAPTO DOUTPORT) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 176 La instanciación del módulo de salida digital por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos DOUT. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 177: Variable

    Aunque no se ha llamado al módulo, éste guarda el estado de un flanco de subida. Dicho estado puede evaluarse en el programa. Output La variable output describe la referencia a la salida de hardware del módulo. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 178: Métodos

    En el editor FTL se visualiza automáticamente una lista con los métodos disponibles introduciendo el punto. Los métodos pueden seleccionarse en dicha lista. En la figura se muestra la selección de métodos del módulo DOUT de la unidad de mando manual. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 179: Espera A Estado, Métodos Wait/Waitn

    FALSE. El estado del flanco se determina independientemente del ciclo del programa FTL y se ejecuta en un ciclo propio. Sintaxis <nombre de instancia>.RisingEdge (OPT ovlEnable: BOOL) : BOOL Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 180: Borrado De Flancos, Resetrisingedge

    Set y Reset se ejecutan en la ejecución principal. El módulo NO influye en el avance aproximado. Ejemplo: Lin(pos1) Lin(pos2) cylinder.Set() // Activa la salida cylinder a TRUE Lin(pos3) cylinder.Reset() // Activa la salida cylinder a FALSE Lin(pos4) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 181: Activación De La Salida, Método Write

    Al principio del impulso, la salida siempre adquiere el estado TRUE y al final, el estado FALSE. No obstante, si la salida ya posee el estado TRUE, este estado se restablece una vez transcurrido el tiempo del impulso. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 182: Activa La Salida Cylinder A True Durante 200 Ms

    Es posible indicar otros parámetros para, p. ej., realizar ajustes previos. Sin embargo, esto no es necesario para la instanciación y puede efectuarse en el programa. Ejemplo: Un sensor se guarda como instancia de módulo: Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 183 La instanciación del módulo de entrada analógica por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos AIN. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 184: Variable

    Esperar a que el valor de entrada se encuentre dentro del límite indicado WaitOuts Esperar a que el valor de entrada se encuentre fuera del límite indicado Read Leer el valor de entrada Tabla 19.7 Métodos del módulo de entrada analógica Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 185: Espera A Que El Valor Sea Menor/Mayor, Métodos Waitlss, Waitgrt

    <nombre de instancia>.WaitGrt(value : REAL, OPT ovlEnable : BOOL) Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Parámetro Tipo Significado value REAL Valor límite Tabla 19.8 Parámetro de los métodos WaitLss, WaitGrt Ejemplo: Lin(pos1) temperature.WaitLss(65.0, TRUE) Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 186: Espera A Que El Valor Entre/Salga De Un Margen, Métodos Waitins

    19.6.6 Interrogación del valor, método Read El método Read lee el valor actual de la entrada analógica. Sintaxis <nombre de instancia>.Read(OPT ovlEnable) Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 187: Leer La Temperatura Sin Parar La Trayectoria

    Instanciación con el editor FTL La instanciación se efectúa en el diálogo para crear variables seleccionando <tipo:> (AOUT) e introduciendo el <identificador:> (aoutQuantity). En la línea <MAPTO AOUTPORT> se activa la referencia real a una salida analógica configurada. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 188: Variable

    Encontrará más información y un ejemplo sobre la generación de mensajes de error en el capítulo 24.2 Empleo de los módulos de entrada y salida. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 189: Métodos

    En la unidad de mando manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Analog Outputs”. En la figura se muestra la selección de métodos del módulo AOUT de la unidad de mando manual. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 190: Escritura Del Valor De Salida, Método Write

    Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Parámetro Tipo Significado value REAL Valor límite Tabla 19.13 Parámetro de los métodos WaitLss, WaitGrt Ejemplo: Lin(pos1) // Esperar a que el valor sea menos de 110.0 quantity.WaitLss(110.0, TRUE) Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 191: Espera A Que El Valor Entre/Salga De Un Margen, Métodos

    El método Read lee el valor actual de la salida analógica. Sintaxis <nombre de instancia>.Read(OPT ovlEnable) Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Ejemplo: Lin(pos1) // Leer la cantidad sin parar sobre la trayectoria value := quantity.Read(TRUE) Lin(pos2) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 192: Módulo De Reloj Clock

    (CLOCK) e introduciendo el <identificador:> (clkTimer). Instanciación con la unidad de mando manual La instanciación del módulo de reloj por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos CLOCK. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 193: Métodos

    En la unidad de mando manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Timing Blocks”. En la figura se muestra la selección de métodos del módulo CLOCK de la unidad de mando manual. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 194: Puesta En Marcha Del Reloj, Método Start

    Sintaxis <nombre de instancia>.Reset ( ) Ejemplo: Timer.Reset() // El reloj se reinicia 19.8.6 Lectura del reloj, método Read Con el método Read es posible leer el valor de fecha y hora en milisegundos (ms). Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 195: Convertir El Valor De Fecha Y Hora En Una Cadena De Caracteres, Método Tostr

    Para la descripción del parámetro ovlEnable véase el capítulo 19.3.1, en la página 170. Valor de retorno: cadena de caracteres con la información de fecha y hora con formato dd hh:mm:ss:ms Ejemplo: Datos: time STRING Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 196: Leer Con Parada De La Trayectoria

    Es posible indicar otros parámetros para, p. ej., realizar ajustes previos. Sin embargo, esto no es necesario para la instanciación y puede efectuarse en el programa. Ejemplo: Un encoder se guarda como instancia de módulo: Instanciación en el archivo de datos enc0 ENCODER := (-1, MAP(Encoder_0)) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 197: Instanciación Con El Editor Ftl

    La instanciación del módulo de encoder por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos ENCODER. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 198: Variable

    En la figura se muestra la selección de métodos del módulo de encoder de la unidad de mando manual. 19.9.4 Ajuste del encoder, método Set Con el método Set, el programa de usuario puede ajustar un valor de encoder incremental. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 199: Lectura Del Encoder, Método Read

    El método devuelve el valor incremental del encoder. Éste no se computa con el valor de conversión. Para leer el valor estándar se utiliza el elemento Value para acceder directamente al puerto de la entrada de encoder. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 200: Módulo Canopen Copdevice

    := enc0.Read() 19.10 Módulo CANopen COPDEVICE El módulo CANopen puede utilizarse en el programa para activar equipos conectados con el CMXR a través del bus CAN de periféricos. Atención En el bus CAN de periféricos pueden controlarse equipos CANopen pero estos equipos no están sujetos al comportamiento de PARADA DE EMERGENCIA de la cinemática.
  • Página 201: Métodos

    19.10.3 Escritura de SDO, método WriteSDO Con el método WriteSDO es posible escribir conjuntos de datos en el bus CAN. Sintaxis: <COPDEVICE>.WriteSDO ( <index> : DINT, <subindex> : DINT, <data> : DINT, <type> : SdoDataType ) : BOOL Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 202: Lectura De Sdo, Método Readsdosigned

    Tabla 19.23 Parámetros del método ReadSDOSigned Si el conjunto se lee con éxito se devuelve TRUE, de lo contrario se devuelve FALSE. Ejemplo: dint_iData DINT := 0 Programa: Axis3_copd.ReadSDOSigned(16#6098, 0, dint_iData) SetInfo("método de recorrido de referencia leído: %1", dint_iData) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 203: Lectura De Sdo, Método Readsdounsigned

    DINT Subíndice de SDO data DWORD Datos que se van a leer Tabla 19.24 Parámetros del método ReadSDOUnsigned Si el conjunto se lee con éxito se devuelve TRUE, de lo contrario se devuelve FALSE. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 204: Señales De Periféricos

    Cada señal analógica tiene forma de tipo de datos estructurados y contiene los datos: Value REAL Valor de la señal Error BOOL Información sobre un error de la señal Para acceder a estos datos se utiliza el nombre de hardware y el operador punto. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 205 Ejemplo: Una señal de entrada analógica se denomina “Level”. El acceso al estado del sensor se declara: Level.Value Esta expresión es del tipo de datos REAL y puede utilizarse como una variable en el programa. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 206: Programación De Eventos

    Los nombres de eventos/programas mencionados en la tabla deben respetarse estrictamente. En la imagen siguiente, se han creado los 3 eventos onkeyf1pressed, onprogstart, onstartup en el proyecto “GLOBAL”. Sólo se puede reaccionar a estos eventos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 207: Utilización Del Registro De Instrucciones Ftl

    Nota Los nombres de los programas siempre se escriben en minúsculas debido al sistema de archivos del CMXR. Nota Si durante la ejecución de un programa de eventos se produce un error, esto conllevará una parada y la cancelación de este programa.
  • Página 208: Control Temporal

    21.4 Evento arranque del control, <onstartup> Tras el arranque del control multieje CMXR se ejecuta una vez el programa de eventos “onstartup”. Una posible aplicación para este evento es, p. ej., la carga automática de un programa FTL.
  • Página 209: Comportamiento Del Tiempo De Ejecución Durante La Carga

    Esto también incluye la parada de los ejes. Los eventos “onprogstart” y “onprogcontinue” se llaman antes de la ejecución del programa. Por consiguiente, en caso de utilizar estos eventos, siempre debe tenerse en cuenta la fijación temporal. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 210: Solapamiento De Eventos De Programa

    Esto puede realizarse mediante el uso de variables globales. Nota Al iniciar diferentes programas, debe tenerse en cuenta el orden arriba indicado para la ejecución de los programas de eventos y de los programas normales desencadenantes. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 211: Comprobar La Identificación Del Programa

    Si el programa FTL se detiene, en el evento “onproginterrupt” se almacena el estado actual de la salida digital en la variable GlueOpened y el aplicador se cierra. Programa “onproginterrupt” // Recordar estado de aplicación Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 212: Cerrar Aplicador

    // Cerrar aplicador Glue.Reset() Si se reinicia el programa FTL parado, se ejecuta el programa de eventos “onprogcontinue”, donde se comprueba el estado de la variable GlueOpened y, en caso necesario, se vuelve a abrir el aplicador. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 213: Eventos Para Las Teclas F1 Y F2

    F2 situadas en la parte izquierda de la barra inferior de teclas de función. Con la ayuda de los eventos de programa onf1keypressed, onf1keyreleased, onf2keypressed, onf2keyreleased se pueden utilizar estas dos teclas en la aplicación. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 214 Al continuar el programa (nueva instrucción de inicio), la pinza se sitúa en el estado en el que se encontraba al interrumpirse el programa. Programa “onprogcontinue” // Comprobar si la pinza estaba abierta IF(GripperOpen)THEN // Abrir pinza OpenGripper.Set() ELSE // Cerrar pinza OpenGripper.Reset() END_IF Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 215: Comprobar Si Funcionamiento Manual

    Con esta instrucción se puede consultar si el modo de funcionamiento activo es automático o manual. Sintaxis GetAutoModeActive( ): BOOL GetManualModeActive( ): BOOL Valores devueltos: FALSE Modo de funcionamiento no activo TRUE Modo de funcionamiento activo Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 216: Cargar Programa Ftl

    ¡Atención! Si se ejecuta la instrucción “LoadProgram” fuera de un programa de eventos, esto provocará la parada y descarga del programa. De este modo, todas las líneas de programa siguientes ya no se ejecutarán. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 217: Mensajes De Los Programas De Eventos

    Se cancela el evento de programa. Causa No está permitido utilizar instrucciones que influyan en la cinemática, p. ej. instrucciones de desplazamiento, datos dinámicos en programas de eventos. Medida Eliminar las instrucciones no permitidas del programa de eventos. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 218 Se cancela el evento de programa. Causa El evento de programa requiere demasiado tiempo. Posiblemente se han programado demasiadas instrucciones, una instrucción en espera (WaitTime) o un bucle sin fin. Medida Comprobar el programa y eliminar las instrucciones no permitidas. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 219: Puntos De Conmutación Simples

    Ejemplo: En el siguiente contorno se debe conectar una salida digital en los tramos rectos y se debe desconectar dicha salida en los arcos de círculo. Pos1 Pos2 Ipos1 Ipos2 Pos4 Pos3 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 220: Punto De Conmutación Simple

    En este caso, el punto de conmutación se proyecta sobre la trayectoria del área de avance aproximado y se ejecuta. De este modo se pueden producir imprecisiones, cuyo alcance se desconoce y que se deben determinar mediante una puesta en funcionamiento. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 221: Comportamiento Del Tiempo De Ejecución De La Instrucción Do

    El ejemplo siguiente muestra una ejecución de programa que no brinda el resultado deseado: Started := FALSE Lin(Home) Lin(Pos2) Started := TRUE Started THEN ELSE END_IF Debido al cálculo por adelantado del programa FTL, la instrucción IF siempre ejecutará la derivación ELSE. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 222: Puntos De Conmutación De La Trayectoria

    La gráfica siguiente explica la definición del segmento: Segmento de trayectoria entre P1 y P2 Fin de segmento Inicio de segmento Punto de conmutación Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 223: Comportamiento En El Área De Avance Aproximado

    área. Esto puede realizarse, p. ej., mediante la inserción de segmentos circulares que desemboquen de forma tangencial. Punto de conmutación proyectado y ejecutado Punto de conmutación programado, desplazado desde P2 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 224: Punto De Conmutación Con Desplazamiento Porcentual

    Se recorre una trayectoria y, tras un recorrido del 70% de la longitud del segmento entre la posición P0 y P1, debe abrirse una pinza. La instrucción DO se ejecuta aquí. Lin(P0) OnParam(70) Gripper.Set() Lin(P1) 100% Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 225: Punto De Conmutación En Cualquier Lugar De La Trayectoria

    PTP. En caso de uso antes de instrucciones de desplazamiento PTP, se emite una advertencia. El efecto del offset de tiempo (parámetro timeMs) se aborda en el capítulo 23.6 Offset de tiempo opcional, en la página 231. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 226 En el caso de una referencia al fin del segmento, el offset se compensa en dirección al inicio del segmento. Nota El parámetro offset debe especificarse como valor positivo. Si se especifica un valor negativo, se emitirá un mensaje correspondiente. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 227 Offset = 30 mm Ejemplo de punto de conmutación con distancia desde el fin del segmento: Lin(P1) OnDistance(FROMEND, 30) <Instrucción> Lin(P2) Lin(P3) Inicio de segmento Punto de conmutación Fin de segmento Offset = 30 mm Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 228: Punto De Conmutación En Un Plano De Conmutación

    El plano de conmutación sólo puede activarse mediante movimien- tos cartesianos. Si es atravesado por un movimiento PTP, se emitirá una advertencia, puesto que el punto de conmutación no se puede calcular con un movimiento PTP. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 229 Puesto que el plano está situado en el punto cero del sistema de referencia, debe desplazarse correspondientemente en paralelo con el parámetro pos. P1´ 100 mm Plano XZ // Ida Lin(P0) OnPlane(XZPLANE, 100) mySignal := TRUE Lin(P1) Lin(P2) // Vuelta Lin(P1) OnPlane(XZPLANE, 100) mySignal := FALSE Lin(P0) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 230: Programación Tipo Teach-In De La Posición Respecto Al Plano De Conmutación

    Si se ha asignado una variable a este parámetro, se escribe el valor en esta variable. Nota El valor siempre se programa por teach-in en el sistema de refe- rencia seleccionado. Éste se muestra en el cuadro de selección en la página de posición. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 231: Offset De Tiempo Opcional

    Ejemplo de offset de tiempo negativo en el segmento: Offset de tiempo negativo Lin(P1) OnDistance(FROMEND, 0, -250) Lamp.Set() Lin(P2) Punto de Offset conmutación Ejemplo con offset de tiempo positivo: Offset de tiempo positivo Lin(P1) OnDistance(FROMEND, 0, 250) Lamp.Set() Lin(P2) Punto de Offset conmutación Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 232: Reacción Del Sistema En Caso De Valor Temporal No Permitido

    Si al indicar el valor temporal se infringen los valores máximos permitidos, se emite un mensaje de advertencia. Dentro de este mensaje se incluye la macro de punto de conmutación con la indicación del programa y de la línea de programa en cuestión. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 233: Condiciones Generales

    Si se inicia el programa mostrado en la imagen siguiente, no se puede ejecutar el punto de conmutación programado donde está situado el indicador de programa. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 234: Influencia Del Override

    <Ovr>). De este modo el override se fija una vez mediante el programa FTL. Se puede realizar una modificación manual en cualquier momento. Ejemplo: // Ajuste del override al 100% Ovr(100) Lin(HomePos) Lin(pos1) // Punto de conmutación OnDist(FROMEND, Offset, -55) Gripper.Set() Lin(pos2) Lin(pos3) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 235: Trabajar En Modo Manual Con Velocidad Reducida

    Si al parar el programa ya se están calculando puntos de conmutación de trayectoria, esto repercutirá en la ejecución y, por consiguiente, en la precisión al volver a iniciar el programa. Esto puede provocar mermas de calidad. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 236: Puntos De Conmutación No Ejecutados

    Este mensaje incluye la información siguiente: Nombre de la macro de punto de conmutación del programa FTL Nombre de proyecto y programa Número de línea Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 237: Ejemplos

    Para detectar si una pila de chapa está mecanizada existe otro sensor (para detectar pilas vacía Sistema de pinzas con detección de avance Entrada: inCollision Vía de rodillos Pila de chapa Sensor para detectar pilas vacías Entrada: inStackNotEmpty Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 238 Para esta aplicación pueden utilizarse más posiciones, pero el ejemplo se limita a las indicadas. safetyDepositPos safetyPosStack depositPos takePosStack Como la altura de pila varía, la altura de recogida es desconocida y se fija debajo de la pila. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 239 Esta posición se complementa con una distancia de seguridad. Así, en el ciclo siguiente puede avanzarse a mayor velocidad sobre la pila. A continuación se conmuta a una velocidad lenta hasta hacer contacto con la pieza. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 240: Empleo De Los Módulos De Entrada Y Salida

    SetError(“Timeout over”) RETURN END_IF // Reanudar ejecución Lin(pos) Nota La edición de un mensaje de error provoca la detención del movimiento. No es posible reanudar la ejecución hasta que se acuse recibo del mensaje de error. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 241: Control Del Avance De Proceso

    Si el contador de bucles visualiza el ciclo real, el avance de proceso debe interrumpirse con una instrucción WaitTime. El contador de bucles se incrementará siempre al alcanzar la Pos3. Ello se muestra en la figura siguiente. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 242: Empleo De Pinzas

    En los capítulos siguientes se explica la integración de diferentes tipos de pinza en el sistema CMXR. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 243: Pinzas Por Vacío

    Una pieza debe transportarse desde la posición pos2 a la posición pos4. pos1 pos3 pos2 pos4 Como generador de vacío se utiliza una tobera Venturi. Ésta se controla a través de una salida digital del CMXR. Para ello se crea un módulo de salida digital. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 244 La instrucción siguiente WaitTime impide el avance aproximado ya que el cálculo por adelantado de proceso se detiene en este punto y se reanuda transcurrido el ciclo. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 245 24. Ejemplos Perfil de movimiento: pos1 pos3 Área de avance aproximado pos2 pos4 Comportamiento en la línea temporal: Velocidad pos2 pos4 Tiempo pos1 pos1 pos3 pos3 Tiempo de espera Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 246: Pinzas Paralelas Neumáticas

    Una pieza debe transportarse desde la posición pos2 a la posición pos4. pos1 pos3 pos2 pos4 Se utiliza una pinza paralela con técnica de sensores de posición final. Se obtienen las señales digitales siguientes y se integran en forma de módulos en la programación FTL. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 247 Wait introduce una espera al acuse de recibo de la posición final que evita un avance aproximado a las posiciones de aceptación y posado. El cálculo por adelantado de proceso se detiene en este punto y se reanuda al conmutarse la señal de entrada digital. Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 248 Comportamiento en la línea temporal: Velocidad pos2 pos4 Tiempo pos1 pos1 pos3 pos3 Tiempo de espera hasta acusar Tiempo de espera hasta acusar recibo del cierre de la pinza recibo de la apertura de la pinza Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 249: Unidad Giratoria Con Pinzas Neumáticas

    24. Ejemplos 24.4.3 Unidad giratoria con pinzas neumáticas La unidad giratoria con pinzas neumáticas HGDS de Festo reúne una pinza paralela con un actuador giratorio en una sola unidad. Unidad giratoria con pinzas HGDS con pinza paralela La unidad HGDS permite montar sensores de detección de posiciones finales de la pinza y del actuador giratorio.
  • Página 250 Lin(pos1) outPos0Degree.Reset() // Girar a 90 grados outPos90Degree.Set() Lin(pos3) inPos90Degree.Wait(TRUE) // Esperar a 90 grados con avance aproximado Lin(pos4) // Posición de posado outGripperClose.Reset() // Abrir pinza outGripperOpen.Set() inGripperOpen.Wait() // Esperar a pinza abierta Lin(pos3) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 251 El acuse de recibo del movimiento de giro de 90 grados no se ha detectado antes de alcanzar la posición pos3. Se espera al acuse de recibo en la posición pos3 y no se ejecuta el movimiento de avance aproximado a la pos4. pos1 pos3 Área de avance aproximado pos2 pos4 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 252 Tiempo de espera hasta acusar Tiempo de espera hasta acusar recibo de la apertura de la pinza recibo del cierre de la pinza Tiempo de espera hasta acusar recibo del giro de 90 grados Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 253: Empleo De La Interface Plc

    En el primer paso, el PLC señaliza que se han enviado los datos. En el momento en que el CMXR recibe los datos, se lo indica al PLC. A continuación se borran las dos señales de interface. La secuencia se muestra en el diagrama de flujo siguiente.
  • Página 254: Programa Secuencial

    // Confirma la recepción WAIT plc_inboolreg[0] // Esperar a la respuesta del PLC plc_outboolreg[0] := FALSE // Avanzar a la posición de aceptación Lin(abovePickPos) Lin(pickPos) // Agarrar gripper.Set() WaitTime(200) // Avanzar a la posición de posado Lin(abovePickPos) Lin(aboveDepositPos) Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 255 24. Ejemplos Lin(depositPos) // Posar gripper.Reset() WaitTime(200) // Avanzar a la posición de espera Lin(aboveDepositPos) Lin(waitPos) END_WHILE Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 256: Lista De Instrucciones Ftl

    √ RETURN √ √ √ KILL √ √ √ WaitTime √ √ √ WAIT √ √ √ WaitOnPath √ √ WaitOnPos √ √ WaitOnMainRun √ Instrucciones de movimiento √ √ √ PtpRel √ √ √ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 257 : ARRAY[16] OF BOOL √ √ plc_Dint : ARRAY[256] OF DINT √ √ plc_AxisPos : ARRAY[256] OF AXISPOS √ √ plc_CartPos : ARRAY[256] OF CARTPOS √ √ plc_RefSys : ARRAY[16] OF REFSYSDATA √ √ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 258 √ √ √ √ √ √ √ √ SQRT √ √ √ SHR, SHL √ √ √ ROR, ROL √ √ √ √ √ √ √ √ √ √ √ √ SetBit √ ResetBit √ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 259 √ Encoder, ENCODER √ √ √ √ √ √ Read √ √ √ CANopen, COPDEVICE √ √ √ WriteSDO √ √ √ ReadSDOSigned √ √ √ ReadSDOUnsigned √ √ √ Eventos onstartup √ onprogload √ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 260 A. Lista de instrucciones FTL onproginterrupt √ onprogcontinue √ onprogend √ onf1keypressed √ onf1keyreleased √ onf2keypressed √ onf2keyreleased √ GetAutoModeActive √ GetManualModeActive √ LoadProgram √ Puntos de conmutación √ √ OnPosition √ OnParameter √ OnDistance √ OnPlane √ Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 261: Árbol De Menús De Las Instrucciones Ftl

    A continuación se muestran todas las instrucciones del conjunto de instrucciones “Base de programación FTL”. Representación del árbol de menús de la unidad de mando manual CDSA: Interface PLC ProgHold Funciones ACOS ACOT ASIN ATAN ATAN2 CheckBit Funciones de posición o ReadActualPos o ReadTargetPos Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 262 B. Árbol de menús de las instrucciones FTL o SavePosition ResetBit SQRT SetBit Time TimeToStr Referenciación IsAxisReferenced RefAxis RefAxisAsync WaitRefFinished Instrucciones de movimiento CircIp LinRel LinToCircIp MoveAxisCart MoveAxisPtp PtpRel PtpToCircIp StopMove Instrucciones de dinámica DynOvr Jerk OvlCart OvlVel OvlWrist Ramp VconstOff Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 263 RUN… StopProgram WAIT… WHILE … DO … END_WHILE WaitOnMainRun WaitOnPath WaitOnPos WaitTime Instrucciones de robot Sistemas de referencia o SetRefSys o SetRefSys3P o SetRefSysDyn o SetRefSysWorld Tool Funciones del sistema Cronometraje o CLOCK.Read o CLOCK.Reset Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 264 Módulos E/S Entradas analógicas o AIN.Read o AIN.WaitGrt o AIN.WaitIns o AIN.WaitLss o AIN.WaitOuts Salidas analógicas o AOUT.Read o AOUT.WaitGrt o AOUT.WaitIns o AOUT.WaitLss o AOUT.WaitOuts o AOUT.Write Dispositivos CANopen o COPDEVICE.ReadSDOSigned o COPDEVICE.ReadSDOUnsigned o COPDEVICE.WriteSDO Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 265 DOUT.Write Encoder incremental o ENCODER.Read o ENCODER.Set Funciones tecnológicas Seguimiento de objetos o CONVEYOR.Begin o CONVEYOR.End o CONVEYOR.Done o CONVEYOR.Wait o CONVEYOR.WaitReachable Puntos de conmutación de la trayectoria o OnDistance o OnParamter o OnPlane Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 266: Términos Utilizados

    CMXR-C1 Código de tipo Festo para el modelo básico CMXR C1 CMXR-C2 Código de tipo Festo para el modelo CMXR de la clase superior CoDeSys Nombre del control PLC integrado, que se puede programar según IEC 61131-3 y que funciona en un procesador junto con la robótica.
  • Página 267: Índice

    Empleo de los módulos de entrada y ORD ..........164 salida .......... 240 OvlCart ..........110 Empleo de pinzas ......242 OvlVel ..........108 WAIT con entrada digital ....54 Ovr ..........97, 234 ENCODER .......... 196 Festo GDCP-CMXR-SW-ES es Version 1.0...
  • Página 268 WaitOnPath ......... 55 Set ............ 198 WaitOnPos .......... 56 SetBit ..........165 WaitRefFinished ........ 125 SetError ..........149 WaitTime..........52 SetInfo ..........147 WHILE ..........45 SetRefSys .......... 114 WriteSDO .......... 201 SetRefSys3P ........115 Festo GDCP-CMXR-SW-ES es Version 1.0...

Este manual también es adecuado para:

Base ftl

Tabla de contenido