GRAFCET Víctor M. González (Enero 2004) ¿POR QUÉ GRAFCET? AUTOMATISMOS SECUENCIALES MÉTODO PIEDRA • NO COMPLETO • SI INTUITIVO Víctor M. González (Enero 2004) GRAFCET • SI COMPLETO • SI INTUITIVO MÉTODO HUFFMAN • SI COMPLETO • NO INTUITIVO INTRODUCCIÓN 1977 La AFCET (Association Française pour la Cybernétique Economique et Technique) define GRAFCET = GRAfico Funcional de Etapa-Transción 1988 IEC-848. Preparation of function charts for control systems. 1993 IEC-61131-3. Sequential Function Chart (SFC). GRAFCET = Lenguaje Gráfico de Descripción de Modelos de Automatismos Secuenciales Independiente de la Tecnología de las Partes de Mando y Operativa GRAFCET NO ES un Lenguaje de Programación Víctor M. González (Enero 2004) ELEMENTOS GRÁFICOS DE BASE •ETAPAS NORMALES 0 •ETAPAS INICIALES • LÍNEAS DE EVOLUCIÓN PULSADOR 1 SUBIR •TRANSICIONES ARRIBA •ACCIONES •RECEPTIVIDADES 2 BAJAR ABAJO Víctor M. González (Enero 2004) SINTAXIS DE GRAFCET •ETAPA TAPA--TRANSICIÓN RANSICIÓN--ETAPA •GRAFCET SIEMPRE GLOBALMENTE CERRADO •ETAPAS NUMERADAS EL NÚMERO NO IMPLICA ORDEN Víctor M. González (Enero 2004) •ETAPAS ACTIVAS REGLAS DE EVOLUCIÓN DE GRAFCET •INICIALIZACIÓN EN LA INICIALIZACIÓN DEL SISTEMA SE HAN DE ACTIVAR TODAS LAS ETAPAS INICIALES Y SÓLO LAS INICIALES •EVOLUCIÓN DE LAS TRANSICIONES • UNA TRANSICIÓN ESTÁ VALIDADA CUANDO TODAS LAS ETAPAS INMEDIATAMENTE ANTERIORES A ELLA ESTÁN ACTIVAS. • UNA TRANSICIÓN ES FRANQUEABLE CUANDO ESTÁ VALIDADA Y SU RECEPTIVIDAD ASOCIADA ES CIERTA. • TODA TRANSICIÓN FRANQUEABLE DEBE SER OBLIGATORIAMENTE E INMEDIATAMENTE FRANQUEADA. T. VALIDADA Víctor M. González (Enero 2004) T. FRANQUEABLE T. FRANQUEADA REGLAS DE EVOLUCIÓN DE GRAFCET II •EVOLUCIÓN DE LAS ETAPAS ACTIVAS AL FRANQUEAR UNA TRANSICIÓN •SIMULTANEIDAD EN EL FRANQUEAMIENTO DE LAS TRANSICIONES SE DEBEN ACTIVAR TODAS LAS ETAPAS INMEDIATAMENTE POSTERIORES Y DESACTIVAR SIMULATÁNEAMENTE LAS TRANSICIONES SIMULATÁNEAMENTE FRANQEUABLES HAN DE SER SIMULATÁNEAMENTE FRANQEUADAS TODAS LAS INMEDIATAMENTE ANTERIORES. •PRIORIDAD DE LA ACTIVACIÓN SI AL EVOLUCIONAR UN GRAFCET, UNA ETAPA HA DE SER ACTIVADA Y DESACTIVADA AL MISMO TIEMPO, DEBE PERMANECER ACTIVADA Víctor M. González (Enero 2004) ESTRUCTURAS BÁSICAS DE GRAFCET SECUENCIA LINEAL SECUENCIA ALTERNATIVA SECUENCIA PARALELA ¡OJO! CON LA SINTAXIS Víctor M. González (Enero 2004) SALTO MACRO ACRO--ETAPAS CORRECTO INCORRECTO M2 Víctor M. González (Enero 2004) MACRO ACRO--ACCIONES O SUBRUTINAS Víctor M. González (Enero 2004) TIPOS DE ACCIONES CONDICIONADA RETARDADA IMPULSIONAL 3 P Pulso k X1 X2 Ter. Cer. X3 Pulso 0.5s. Cal. t? t=Ciclo Scan PLC MEMORIZADA NO ALMACENADA LIMITADA N X6 X8 XBR X4 Acti. Víctor M. González (Enero 2004) X3 Sir. R 2s. Ejemplo ARRIBA - FC_ARRIBA - I0.1.5 P_INI - I0.1.1 PULSADOR DE MARCHA Una vez pulsado "MARCHA" el elemento sube hasta "ARRIBA", baja automáticamente y se para "ABAJO". SUBIR - KMS - Q0.1.1 BAJAR - KMB - Q0.1.2 ABAJO - FC_ABAJO - I0.1.7 AMPLIACIONES: • ¿Qué hacer si el elemento no se encuentra inicialmente abajo? • ¿Qué hacer si durante la maniobra se vuelve a pulsar "MARCHA"? • ¿Qué hacer si se tarda demasiado en la maniobra de subida o de bajada? • ¿Qué hacer si los dos fines de carrera están activos simultáneamente? • ¿Cómo indicar cualquier posible fallo, aceptarlo y rearmar la instalación? • ¿Conviene considerar alguna temporización para que KMS y KMB no estén activos simultáneamente? Víctor M. González (Enero 2004) 4 R KMS KMB %I0.1. 0 FC_ARRIBA FC_ABAJO 13 13 13 14 14 14 1 2 3 4 5 6 7 1 2 3 4 5 6 7 KMS N A1 A1 A2 A2 N 2 KMS KMB Víctor M. González (Enero 2004) FC_ABAJO N PLC %Q0.1. 0 KMB FC_ARRIBA R FC_ARRIBA P_INI P_INI KMS KMB R NIVELES DE REPRESENTACIÓN DE GRAFCET NIVEL I NIVEL II 0 NIVEL III 0 MARCHA SUBIR 1 P_INI 1 ARRIBA BAJAR 2 ABAJO ALTO NIVEL Víctor M. González (Enero 2004) 0 KMS I0.1.1 1 FC_ARRIBA 2 KMB FC_ABAJO NIVEL DE PROCESO Q0.1.1 I0.1.5 2 Q0.1.2 I0.1.7 NIVEL DE CONTROLADOR Ejemplo con CoDeSys: SFC con "IEC steps" Víctor M. González (Enero 2004) Ejemplo con CoDeSys: SFC Víctor M. González (Enero 2004) Ejemplo con CoDeSys: LD Víctor M. González (Enero 2004) Ejemplo con CoDeSys: ST Víctor M. González (Enero 2004) Ejemplo con PL7 Víctor M. González (Enero 2004) Ejemplo con PL7 Víctor M. González (Enero 2004) Ejemplo con PL7 Víctor M. González (Enero 2004) Ejemplo con UNITY: Configuración Víctor M. González (Enero 2004) Ejemplo con UNITY: SFC (Grafcet (Grafcet)) Víctor M. González (Enero 2004) Ejemplo con UNITY: LD Víctor M. González (Enero 2004) Ejemplo con UNITY: ST Víctor M. González (Enero 2004) Ejemplo con UNITY: ST Víctor M. González (Enero 2004) Ejemplo con UNITY: Comparativa de lenguajes 1 2 3 SUBIR := (MARCHA OR SUBIR) AND NOT FC_ARRIBA AND NOT BAJAR; BAJAR := (FC_ARRIBA OR BAJAR) AND NOT FC_ABAJO AND NOT SUBIR; IF MARCHA AND NOT BAJAR THEN SET(SUBIR); END_IF; 4 IF FC_ARRIBA THEN RESET(SUBIR); SET(BAJAR); END_IF; IF FC_ABAJO THEN RESET(BAJAR); END_IF; Víctor M. González (Enero 2004) 27