Pulsa ESC para cerrar · Ctrl+K para abrir

GRAFCET: Guía Completa de Diseño para Automatización Industrial

Del diagrama funcional a la programación del PLC — domina el lenguaje universal de la automatización secuencial

Diagrama GRAFCET completo con etapas, transiciones, acciones y divergencias para automatización industrial
🛠️ Taller interactivo: Construye y simula tu GRAFCET Diseña paso a paso y prueba con el simulador visual en tiempo real ↓

Tabla de contenidos

1. ¿Qué es el GRAFCET?

GRAFCET (Graphe Fonctionnel de Commande, Étapes/Transitions) es un método gráfico estandarizado para describir el comportamiento secuencial de un sistema automatizado. Es, en esencia, el "plano" que se dibuja antes de escribir una sola línea de código en el PLC.

Imagina que vas a construir una casa: no empiezas a poner ladrillos sin tener el plano del arquitecto. En automatización industrial, el GRAFCET es ese plano. Define qué hace la máquina, en qué orden y bajo qué condiciones pasa de un estado a otro.

¿Para qué sirve?

Para describir de forma clara e inequívoca el funcionamiento secuencial de un proceso antes de programarlo en un PLC, HMI o SCADA. Es el puente entre la especificación funcional (EF) y el código.

¿Para quién es?

Para todos los actores del proyecto: el ingeniero de proceso que define la EF, el programador de PLC, el integrador SCADA, el técnico de mantenimiento y el operador de planta. Es un lenguaje universal.

GRAFCET es independiente de la tecnología: no importa si usas Siemens, Rockwell, Schneider, Omron o Beckhoff. No importa si programas en Ladder, ST, FBD o SFC. GRAFCET es el diseño; el lenguaje del PLC es la implementación.

Regla de oro: Nunca te sientes a programar un PLC sin haber diseñado antes el GRAFCET. El 80% de los errores de automatización se previenen en la fase de diseño, no en la de programación.

2. Historia y normas (IEC 60848 / IEC 61131-3)

GRAFCET nació en Francia en 1977, creado por AFCET (Association Française pour la Cybernétique Économique et Technique) y ADEPA (Agence Nationale pour le Développement de la Production Automatisée). La necesidad era clara: los sistemas de automatización se volvían cada vez más complejos y no existía un método estándar para describirlos.

La evolución de las normas ha seguido este camino:

Año Norma Descripción
1977 GRAFCET original Creación del método gráfico por AFCET/ADEPA en Francia.
1988 IEC 60848 (1.ª ed.) Estandarización internacional: GRAFCET como lenguaje de especificación.
1993 IEC 61131-3 Nace SFC (Sequential Function Chart) como lenguaje de programación de PLC, directamente inspirado en GRAFCET.
2002 IEC 60848 (2.ª ed.) Revisión ampliada: acciones, forzado, macro-etapas, encapsulación.
No confundas GRAFCET con SFC: GRAFCET (IEC 60848) es un lenguaje de especificación — describe comportamiento. SFC (IEC 61131-3) es un lenguaje de programación — implementa ese comportamiento en un PLC. Son hermanos, pero no lo mismo.

3. Elementos fundamentales del GRAFCET

Un GRAFCET se construye con cuatro elementos básicos que, combinados, permiten describir cualquier proceso secuencial por complejo que sea:

Etapa (Étape)

Representa un estado estable del sistema. Se dibuja como un cuadrado con un número identificativo. La etapa inicial tiene doble borde. Mientras una etapa está activa, ejecuta sus acciones asociadas.

Transición

La condición de paso entre dos etapas. Se dibuja como una línea horizontal que cruza el enlace vertical. La receptividad es la condición lógica (sensor, temporizador, botón) que, al ser verdadera, provoca el franqueo.

Acción

Lo que el sistema hace cuando una etapa está activa. Se representa como un rectángulo unido a la derecha de la etapa. Puede ser una salida digital, el arranque de un motor, una señal, etc.

Línea vertical que conecta etapas y transiciones de forma alterna. La dirección por defecto es de arriba hacia abajo; si el flujo va hacia arriba (bucle), se añade una flecha.

Veamos la representación gráfica de un GRAFCET mínimo con 3 etapas:

╔═══╗ ║ 0 ║ ← Etapa inicial (doble borde) ╚═══╝ │ ──┤── t0: Botón START ← Transición (receptividad) │ ┌───┐ │ 1 │──▶ [Motor ON] ← Etapa 1 con acción └───┘ │ ──┤── t1: Sensor de pieza detectada │ ┌───┐ │ 2 │──▶ [Cilindro EXTENDER] ← Etapa 2 con acción └───┘ │ ──┤── t2: Cilindro en posición final │ ▼ (vuelve a la etapa 0) ← Enlace con flecha (bucle)
Regla fundamental: Etapas y transiciones siempre se alternan. Nunca puede haber dos etapas consecutivas sin una transición entre ellas, ni dos transiciones consecutivas sin una etapa.

Tipos de acciones asociadas a una etapa

Las acciones no son solo "encender" y "apagar". La norma IEC 60848 define varios tipos de acciones que permiten describir comportamientos temporales complejos:

Tipo Símbolo Comportamiento Ejemplo
Continua Activa mientras la etapa está activa Motor en marcha
Condicional C Activa si la etapa está activa Y se cumple una condición adicional Motor ON si temperatura < 60°C
Retardada D / t Se activa tras un retardo desde la activación de la etapa Ventilador ON 5s después del arranque
Limitada en el tiempo L Se activa con la etapa pero se desactiva tras un tiempo Señal sonora 3s al arrancar
Impulso P Pulso de un ciclo en la activación (P1) o desactivación (P0) de la etapa Incrementar contador al entrar
Memorizada (SET/RESET) S / R Activa o desactiva y mantiene el estado tras la desactivación de la etapa Abrir válvula y mantenerla abierta

4. Las 5 reglas de evolución del GRAFCET

El comportamiento dinámico del GRAFCET se rige por cinco reglas fundamentales que definen cómo evoluciona el sistema. Son las "leyes físicas" del GRAFCET:

1

Inicialización

La situación inicial del GRAFCET se caracteriza por la activación de las etapas iniciales (marcadas con doble borde). Se establece al encender el sistema o al realizar un reset.

2

Franqueo de una transición

Una transición es franqueada (disparada) si y solo si: a) todas las etapas inmediatamente anteriores están activas, Y b) la receptividad asociada es verdadera.

3

Evolución de las etapas activas

Cuando una transición es franqueada: las etapas inmediatamente siguientes se activan y las etapas inmediatamente anteriores se desactivan simultáneamente.

4

Franqueos simultáneos

Si varias transiciones pueden ser franqueadas en el mismo instante, se franquean todas simultáneamente. No existe prioridad entre transiciones que ocurren al mismo tiempo.

5

Activación y desactivación simultáneas

Si una etapa debe ser activada y desactivada al mismo tiempo (por diferentes transiciones), permanece activa. La activación tiene prioridad sobre la desactivación.

5. Estructuras del GRAFCET

Más allá de la simple secuencia lineal, el GRAFCET puede expresar procesos complejos mediante estructuras de bifurcación y paralelismo:

5.1 Secuencia lineal

La estructura más básica: las etapas se suceden una tras otra en un único camino. Cada transición conecta exactamente una etapa anterior con una etapa siguiente.

╔═══╗ ║ 0 ║ ──▶ [Reposo] ╚═══╝ │ ──┤── Botón START │ ┌───┐ │ 1 │ ──▶ [Motor ON] └───┘ │ ──┤── Final de carrera │ ┌───┐ │ 2 │ ──▶ [Cilindro EXTENDER] └───┘ │ ──┤── Temporizador 5s │ ┌───┐ │ 3 │ ──▶ [Cilindro RETRAER] └───┘ │ ──┤── Sensor posición inicial │ ▼ (vuelve a 0)

5.2 Divergencia OR (selección de secuencia)

Permite elegir un camino entre varias opciones en función de las condiciones. Se representa con una línea horizontal simple. Solo una rama se activa (las receptividades deben ser mutuamente excluyentes para evitar ambigüedad).

┌───┐ │ 1 │ └───┘ │ ──┼──────────┐ ← Divergencia OR (línea simple) │ │ ──┤── a ──┤── b ← Receptividades mutuamente excluyentes │ │ ┌───┐ ┌───┐ │ 2 │ │ 3 │ ← Solo una rama se activa └───┘ └───┘ │ │ ──┤── c ──┤── d │ │ ──┼──────────┘ ← Convergencia OR │ ┌───┐ │ 4 │ └───┘

5.3 Divergencia AND (paralelismo / simultaneidad)

Permite activar múltiples secuencias en paralelo. Se representa con una doble línea horizontal. Todas las ramas se activan simultáneamente. La convergencia AND espera a que todas las ramas se completen antes de continuar.

┌───┐ │ 1 │ └───┘ │ ──┤── START │ ══╪════════════╗ ← Divergencia AND (doble línea) │ │ ┌───┐ ┌───┐ │ 2 │ │ 3 │ ← Ambas ramas activas simultáneamente └───┘ └───┘ │ │ ──┤── a ──┤── b │ │ ┌───┐ ┌───┐ │ 4 │ │ 5 │ └───┘ └───┘ │ │ ══╪════════════╝ ← Convergencia AND (espera a todas) │ ──┤── (siempre verdadera) │ ┌───┐ │ 6 │ └───┘

5.4 Salto de etapa y repetición (bucle)

Un salto permite "saltarse" una o más etapas cuando no son necesarias (mediante una divergencia OR). Una repetición es un bucle que vuelve a una etapa anterior cuando el proceso necesita iterar.

┌───┐ │ 1 │ ──▶ [Proceso A] └───┘ │ ──┼──────────┐ │ │ ──┤── a ──┤── ¬a ← Si "a" falsa, salta la etapa 2 │ │ ┌───┐ │ │ 2 │ │ (salto) └───┘ │ │ │ ──┤── b │ │ │ ──┼──────────┘ │ ┌───┐ │ 3 │ ──▶ [Proceso C] └───┘ │ ──┼──────────┐ │ │ ──┤── fin ──┤── ¬fin ← Si no fin, repite desde etapa 1 │ │ ┌───┐ │ │ 4 │ ◀───┘ (bucle a etapa 1) └───┘

5.5 Macro-etapas

Una macro-etapa encapsula un GRAFCET completo dentro de una única etapa del GRAFCET padre. Es el equivalente a una "función" en programación: permite modularizar y jerarquizar diseños complejos.

Se representa como un cuadrado con una línea horizontal en la parte superior e inferior. Tiene una etapa de entrada (E) interna y una etapa de salida (S).

Consejo práctico: Usa macro-etapas cuando un GRAFCET tenga más de 15-20 etapas. Agrupa funcionalidades (ej.: "Ciclo de lavado", "Dosificación", "Evacuación") como macro-etapas independientes para mantener el diseño legible.

6. Niveles del GRAFCET

Un mismo proceso puede describirse a diferentes niveles de abstracción. Esto es fundamental en proyectos grandes donde intervienen distintos perfiles profesionales:

Nivel 1

Funcional

Describe qué hacer en lenguaje natural. "Llenar tanque", "Calentar producto". Dirigido al ingeniero de proceso.

Nivel 2

Tecnológico

Especifica con qué: "Abrir válvula EV101", "Activar resistencia R1". Dirigido al diseñador de automatización.

Nivel 3

Operativo

Define cómo: "SET Q0.1", "Temporizador T5 = 3000ms". Dirigido al programador de PLC.

El enfoque habitual es diseñar primero el Nivel 1 con el cliente o el ingeniero de proceso, luego detallarlo en el Nivel 2 con especificaciones técnicas, y finalmente llegar al Nivel 3 que prácticamente puede traducirse línea a línea a código PLC.

7. GRAFCET vs. Máquina de Estados (FSM)

GRAFCET y las Máquinas de Estados Finitas (FSM) comparten la misma base matemática, pero GRAFCET añade paralelismo nativo (divergencia AND), jerarquía (macro-etapas y forzado) y acciones que están siempre asociadas a etapas (no a transiciones, como en Mealy). Además está estandarizado (IEC 60848) y es directamente implementable en SFC.

En resumen: si dominas las FSM, dominar GRAFCET te resultará natural. Piensa en él como una máquina de estados extendida construida para la industria.

8. GEMMA: Gestión de modos de marcha

GEMMA (Guide d'Étude des Modes de Marches et d'Arrêts) es el complemento natural del GRAFCET. Mientras el GRAFCET describe la secuencia normal del proceso, GEMMA define qué ocurre cuando las cosas van mal: paradas de emergencia, fallos, modos manuales, arranque, etc.

Muchos proyectos fallan aquí. Diseñan un GRAFCET perfecto para el ciclo normal y se olvidan de: ¿qué pasa si se pulsa la seta de emergencia? ¿Cómo se reanuda? ¿Se puede pasar a modo manual? GEMMA resuelve todo esto.

GEMMA organiza los estados del sistema en tres familias:

Familia Código Descripción Ejemplos
F — Funcionamiento F1 a F6 Modos de producción normal F1: Producción normal, F4: Marcha de verificación
A — Parada A1 a A7 Modos de parada controlada A1: Parado en estado inicial, A2: Petición de parada, D1: Parada de emergencia
D — Fallo D1 a D3 Gestión de fallos y emergencias D1: Parada de emergencia, D3: Producción pese a defecto

En la práctica, GEMMA se implementa como un GRAFCET de nivel superior (a veces llamado GRAFCET de seguridad o GRAFCET maestro) que gobierna la activación y el forzado de los GRAFCETs de producción.

╔═════╗ ║ A1 ║ ──▶ [Parado en estado inicial] ╚═════╝ │ ──┤── Botón MARCHA + Condiciones OK │ ┌─────┐ │ F1 │ ──▶ [Producción normal] → Activa GRAFCET de producción └─────┘ │ ──┼──────────────┐ │ │ ──┤── Fin ciclo ──┤── EMERGENCIA │ │ ┌─────┐ ┌─────┐ │ A2 │ │ D1 │ ──▶ [Parada de emergencia] └─────┘ └─────┘ → FUERZA grafcet de producción a etapa 0 │ │ ──┤── Ciclo ──┤── Reset + Reconocimiento │ completado │ ▼ ▼ (A1) (A6 → A1)

9. Tutorial práctico: Diseñando un GRAFCET paso a paso

Vamos a diseñar desde cero el GRAFCET de un sistema de llenado y calentamiento de tanque. El proceso es real y típico en industrias de proceso (alimentaria, química, farmacéutica).

Descripción del proceso

Un tanque debe llenarse con agua, calentarse a 80°C, mantener la temperatura durante 5 minutos y después vaciarse. El sistema dispone de:

  • Actuadores: Válvula de llenado (EV1), Resistencia calefactora (R1), Agitador (M1), Válvula de vaciado (EV2)
  • Sensores: Nivel bajo (SN_L), Nivel alto (SN_H), Temperatura (TT1), Sensor de tanque vacío (SE)
  • Operador: Botón START, Botón STOP, Seta de EMERGENCIA
1

Paso 1: Definir el proceso (Nivel 1 — Funcional)

Primero escribimos la secuencia en lenguaje natural, como si explicáramos el proceso a alguien sin conocimientos técnicos:

  • Estado 0: Reposo — todo parado, esperando orden de marcha
  • Estado 1: Llenar el tanque hasta nivel alto
  • Estado 2: Calentar el agua a 80°C mientras se agita
  • Estado 3: Mantener temperatura durante 5 minutos mientras se agita
  • Estado 4: Vaciar el tanque
  • Cuando el tanque está vacío, volver a reposo
2

Paso 2: Identificar etapas y transiciones (Nivel 2 — Tecnológico)

Convertimos cada estado en una etapa con acciones concretas y cada condición de paso en una transición con su receptividad:

╔═══╗ ║ 0 ║ ──▶ [Reposo: todo OFF] ╚═══╝ │ ──┤── t0: START · SE · ¬SN_H (START pulsado, tanque vacío, nivel no alto) │ ┌───┐ │ 1 │ ──▶ [Abrir EV1 (llenado)] └───┘ │ ──┤── t1: SN_H (nivel alto alcanzado) │ ┌───┐ │ 2 │ ──▶ [Activar R1 + M1 (calentar + agitar)] └───┘ │ ──┤── t2: TT1 ≥ 80°C (temperatura alcanzada) │ ┌───┐ │ 3 │ ──▶ [Mantener R1 + M1, Temporizador 5min] └───┘ │ ──┤── t3: T_5min (temporizador expirado) │ ┌───┐ │ 4 │ ──▶ [Abrir EV2 (vaciado)] └───┘ │ ──┤── t4: SE (tanque vacío) │ ▼ (vuelve a la etapa 0)
3

Paso 3: Definir acciones detalladas

Para cada etapa, especificamos el tipo de acción según la tabla de tipos:

Etapa Acción Tipo Detalle
0 Piloto LISTO (verde) Continua Indica que el sistema está en reposo y listo
1 EV1 (llenado) Continua Válvula abierta mientras la etapa 1 está activa
2 R1 (calefacción) + M1 (agitador) Continua Resistencia y motor on simultáneamente
3 R1 (calefacción condicional) + M1 C: R1 si TT1<82°C Mantiene temperatura mediante control on/off con histéresis
4 EV2 (vaciado) Continua Válvula de vaciado abierta
4

Paso 4: Añadir GEMMA (modos de funcionamiento)

Ahora pensamos en qué ocurre fuera del ciclo normal:

  • Emergencia: Si se pulsa la seta, cerrar EV1 y EV2, apagar R1 y M1. Forzar a etapa 0.
  • Parada a fin de ciclo: Si se pulsa STOP durante el ciclo, el proceso continúa hasta completarse y no vuelve a arrancar.
  • Modo manual: Permitir actuar cada dispositivo individualmente para mantenimiento.
5

Paso 5: Verificar el diseño

Antes de tocar el IDE del PLC, revisa mentalmente estos escenarios:

  • ¿Qué pasa si se pulsa START y el tanque ya tiene agua? → La transición t0 requiere SE (tanque vacío).
  • ¿Qué pasa si se pierde la alimentación durante el calentamiento? → Al volver, el GRAFCET arranca en la etapa 0 (regla 1).
  • ¿Qué pasa si falla el sensor de temperatura? → El diseño necesita un temporizador de seguridad en la etapa 2.
  • ¿Qué pasa si se pulsa la seta de emergencia durante el vaciado? → GEMMA fuerza el GRAFCET a la etapa 0, cerrando EV2.

Lista de verificación del GRAFCET

  • Las etapas y transiciones se alternan correctamente
  • Existe al menos una etapa inicial
  • Todas las transiciones tienen receptividades definidas
  • No hay bloqueos posibles (deadlocks)
  • Las receptividades de las divergencias OR son mutuamente excluyentes
  • Las convergencias AND esperan a todas las ramas
  • Se han considerado todos los modos GEMMA
  • Las acciones de seguridad tienen máxima prioridad
  • Temporizadores de seguridad protegen contra sensores bloqueados

10. Del GRAFCET al PLC: Implementación

Una vez que el diseño del GRAFCET está completo y verificado, existen tres estrategias principales para implementarlo en un PLC:

A) SFC directo

Usar el lenguaje SFC nativo del entorno del PLC: S7-Graph (Siemens), SFC en RSLogix/Studio 5000 (Rockwell), SFC en EcoStruxure (Schneider). La traducción es directa: cada etapa GRAFCET = un Step SFC y cada transición = una Transition SFC.

B) Ladder con bits de etapa

Método clásico: un bit de memoria (M0.0, M0.1...) por etapa. Los peldaños Ladder activan/desactivan bits según las condiciones. Funciona en cualquier PLC del mercado, incluso los más antiguos.

C) Texto Estructurado (ST) con CASE

Implementar como una máquina de estados en código: una variable iStep + un bloque CASE iStep OF. Limpio, legible y portable entre marcas. El método preferido en proyectos modernos.

Ejemplo: Implementación en Texto Estructurado (ST)

Veamos cómo traducir nuestro GRAFCET del tanque a ST con un CASE:

Texto Estructurado (IEC 61131-3)
PROGRAM PRG_Tanque
VAR
    iStep       : INT := 0;        // Etapa activa
    tMaintain   : TON;             // Temporizador 5 minutos
    bStart      : BOOL;            // Botón START
    bEmergency  : BOOL;            // Seta de emergencia
    // Sensores
    bLevelHigh  : BOOL;            // SN_H
    bTankEmpty  : BOOL;            // SE
    rTemp       : REAL;            // TT1 (°C)
    // Actuadores
    bEV1        : BOOL;            // Válvula de llenado
    bEV2        : BOOL;            // Válvula de vaciado
    bR1         : BOOL;            // Resistencia calefactora
    bM1         : BOOL;            // Agitador
END_VAR

// ── GEMMA: Emergencia (máxima prioridad) ──
IF bEmergency THEN
    iStep := 0;
    bEV1  := FALSE;
    bEV2  := FALSE;
    bR1   := FALSE;
    bM1   := FALSE;
    RETURN;
END_IF;

// ── GRAFCET: Secuencia normal ──
CASE iStep OF

    0: // ═══ REPOSO ═══
        bEV1 := FALSE;
        bEV2 := FALSE;
        bR1  := FALSE;
        bM1  := FALSE;
        IF bStart AND bTankEmpty AND NOT bLevelHigh THEN
            iStep := 1;
        END_IF;

    1: // ═══ LLENADO ═══
        bEV1 := TRUE;
        IF bLevelHigh THEN
            bEV1  := FALSE;
            iStep := 2;
        END_IF;

    2: // ═══ CALENTAMIENTO ═══
        bR1 := TRUE;
        bM1 := TRUE;
        IF rTemp >= 80.0 THEN
            iStep := 3;
        END_IF;

    3: // ═══ MANTENIMIENTO DE TEMPERATURA ═══
        bM1 := TRUE;
        bR1 := (rTemp < 82.0);    // Control on/off con histéresis
        tMaintain(IN := TRUE, PT := T#5m);
        IF tMaintain.Q THEN
            tMaintain(IN := FALSE);
            bR1 := FALSE;
            bM1 := FALSE;
            iStep := 4;
        END_IF;

    4: // ═══ VACIADO ═══
        bEV2 := TRUE;
        IF bTankEmpty THEN
            bEV2  := FALSE;
            iStep := 0;
        END_IF;

END_CASE;
      
Recomendación: Si tu PLC soporta SFC (S7-Graph, Studio 5000 SFC, Unity Pro SFC), úsalo — es la traducción más directa del GRAFCET. Para máxima portabilidad, usa ST con CASE. La alternativa clásica es Ladder con bits de etapa (un bit M por etapa + peldaños para transiciones), válida para cualquier PLC del mercado.

11. Errores comunes y buenas prácticas

Errores a evitar

Error Problema Solución
Dos etapas consecutivas sin transición Viola la alternancia etapa-transición Añadir siempre una transición, aunque sea =1 (siempre verdadera)
Receptividades OR no excluyentes Ambigüedad: ¿qué rama se toma? Garantizar exclusividad lógica o añadir prioridad explícita
Olvidar GEMMA Sin gestión de emergencias ni modos Diseñar siempre el GRAFCET maestro con GEMMA
GRAFCET demasiado grande Inmantenible, difícil de verificar Usar macro-etapas y jerarquía
No considerar fallos de sensores El sistema se queda bloqueado esperando una señal que nunca llega Añadir temporizadores de seguridad en cada transición crítica

Buenas prácticas

  • Numerar las etapas secuencialmente (0, 1, 2...) y reservar huecos (0, 10, 20...) para futuras inserciones.
  • Documentar las receptividades con nombres significativos, no solo direcciones del PLC.
  • Una etapa = una acción principal. Si una etapa tiene 10 acciones, probablemente debas descomponerla.
  • Usar macro-etapas cuando el GRAFCET supere las 15 etapas.
  • Validar con el cliente el GRAFCET de Nivel 1 antes de pasar al Nivel 2.
  • Versionar el GRAFCET como documentación del proyecto (no solo el código PLC).

12. Herramientas y software para diseño de GRAFCET

Existen diversas herramientas para diseñar GRAFCETs, desde el papel hasta software especializado:

Herramienta Tipo Ventajas Ideal para
Lápiz y papel Analógico Rapidez, sin curva de aprendizaje Diseño inicial, brainstorming
Draw.io / diagrams.net Online gratuito Fácil, exporta a PNG/SVG/PDF, colaborativo Documentación de proyecto
TIA Portal (S7-Graph) IDE de PLC Diseño + programación integrados Proyectos Siemens
Studio 5000 (SFC) IDE de PLC SFC nativo, integrado con Ladder y ST Proyectos Rockwell
EcoStruxure Control Expert IDE de PLC SFC conforme a IEC 61131-3 Proyectos Schneider

13. 🛠️ Taller: Construye tu propio GRAFCET

Modo taller: menos teoría, más acción

Diseña un GRAFCET completo desde cero en 6 micro-pasos. Coge lápiz y papel.

El desafío: Cinta transportadora con clasificación

Una cinta transportadora transporta piezas. Un sensor óptico detecta si son grandes o pequeñas. Las piezas grandes son desviadas por un cilindro neumático a la caja A. Las pequeñas continúan hasta el final de la cinta y caen en la caja B.

Entradas
  • S1 — Sensor de presencia (pieza detectada)
  • S2 — Sensor de tamaño (ON = grande)
  • S3 — Cilindro retraído (posición inicial)
  • S4 — Cilindro extendido
  • S5 — Pieza al final de la cinta
  • START — Botón de marcha
Salidas
  • M1 — Motor de la cinta
  • CYL+ — Extender cilindro
  • CYL− — Retraer cilindro
  • LAMP — Piloto "En marcha"
1

Dibuja la etapa inicial

30 seg
Dibuja un cuadrado con doble borde (etapa inicial). Número: 0. Acción: todo apagado, sistema en espera.
Tu diagrama debería verse así:
╔═══╗ ║ 0 ║ ──▶ [Reposo: M1=OFF, CYL=OFF, LAMP=OFF] ╚═══╝
2

Arranca la cinta

1 min
Añade una transición debajo: condición START · S3 (marcha + cilindro en posición inicial). Debajo, una nueva etapa 1: motor de cinta ON + piloto ON.
Resultado parcial:
╔═══╗ ║ 0 ║ ──▶ [Reposo] ╚═══╝ │ ──┤── START · S3 │ ┌───┐ │ 1 │ ──▶ [M1=ON, LAMP=ON] (cinta en marcha) └───┘
3

Detecta la pieza y clasifica

2 min
Desde la etapa 1, añade la transición S1 (pieza detectada). Ahora la parte clave: dibuja una divergencia OR (línea horizontal simple). Dos ramas:
Rama izquierda: condición S2 (pieza grande) → etapa 2
Rama derecha: condición ¬S2 (pieza pequeña) → etapa 3
Hasta ahora se ve así:
┌───┐ │ 1 │ ──▶ [M1=ON, LAMP=ON] └───┘ │ ──┤── S1 (pieza detectada) │ ──┼──────────────┐ ← Divergencia OR │ │ ──┤── S2 ──┤── ¬S2 │(grande) │(pequeña) ┌───┐ ┌───┐ │ 2 │ │ 3 │ └───┘ └───┘
4

Completa las ramas

2 min
Rama grande (etapa 2): acción CYL+ (extender cilindro) + M1=OFF (parar cinta). Transición: S4 (cilindro extendido). Nueva etapa 4: CYL− (retraer). Transición: S3 (cilindro en posición inicial).

Rama pequeña (etapa 3): acción M1=ON (cinta continúa). Transición: S5 (pieza llegó al final).
Ambas ramas completas:
── RAMA GRANDE ── ── RAMA PEQUEÑA ── ┌───┐ ┌───┐ │ 2 │──▶[CYL+, M1=OFF] │ 3 │──▶[M1=ON] └───┘ └───┘ │ │ ──┤── S4 (extendido) ──┤── S5 (final de cinta) │ │ ┌───┐ │ │ 4 │──▶[CYL−] │ └───┘ │ │ │ ──┤── S3 (retraído) │ │ │ ──┼──────────────────────────┘ ← Convergencia OR
5

Cierra el bucle

30 seg
Tras la convergencia OR, dibuja una flecha que vuelve a la etapa 1 (bucle). La cinta sigue en marcha y espera la siguiente pieza. ¡No vuelvas a la etapa 0! Solo a la 0 si se pulsa STOP.
El bucle:
──┼──────────────────────────┘ ← Convergencia OR │ ▼ (vuelve a la etapa 1) → La cinta sigue en marcha, esperando la siguiente pieza
6

Añade seguridad (GEMMA exprés)

1 min
Escribe a un lado: "Si EMERGENCIA → forzar a etapa 0, todo OFF". Y también: "Si STOP → finalizar ciclo actual y volver a etapa 0 en vez de etapa 1". Con eso tienes un GEMMA mínimo.
Ver solución completa
╔═══╗ ║ 0 ║ ──▶ [Reposo: todo OFF] ╚═══╝ │ ──┤── START · S3 (marcha + cilindro en posición inicial) │ ┌───┐ │ 1 │ ──▶ [M1=ON, LAMP=ON] (cinta en marcha) └───┘ │ ──┤── S1 (pieza detectada) │ ──┼──────────────┐ ← Divergencia OR │ │ ──┤── S2 ──┤── ¬S2 │ │ ┌───┐ ┌───┐ │ 2 │──▶ │ 3 │──▶ [M1=ON] │ │[CYL+, └───┘ (continúa al final) │ │ M1=OFF] │ └───┘ │ │ ──┤── S5 (pieza al final) ──┤── S4 │ │ │ ┌───┐ │ │ 4 │──▶[CYL−] │ └───┘ │ │ │ ──┤── S3 │ │ │ ──┼──────────────┘ ← Convergencia OR │ ▼ (vuelve a la etapa 1) ← Bucle ───────────────────────────────────────── GEMMA: EMERGENCIA → Forzar a etapa 0 STOP → Fin de ciclo → etapa 0 ─────────────────────────────────────────
¡Enhorabuena! Has diseñado un GRAFCET con secuencia lineal, divergencia OR, convergencia y bucle. Tiene 5 etapas, 6 transiciones y gestión de emergencia. Ahora puedes traducirlo a ST con CASE o Ladder con bits de etapa como se muestra en la sección 10.

Simulador interactivo de cinta clasificadora

Pulsa los botones y observa cómo evoluciona el GRAFCET en tiempo real.

CINTA TRANSPORTADORA M1: OFF S1 S2 CYL CYL: ▲ S3 S4 S5 CAJA A CAJA B LAMP

GRAFCET

E0 Espera START·S3 E1 Cinta S1 S2 E2 CYL+ S4 E4 CYL− S3 ¬S2 E3 Cinta→ S5 ↻ vuelve a E1 EMERG → E0

14. Conclusiones

GRAFCET no es "otra cosa más que aprender" — es la herramienta fundamental de diseño en automatización industrial. Es la diferencia entre programar un PLC con método y programarlo a ciegas.

Recapitulemos los puntos clave:

  • GRAFCET es un lenguaje de especificación estandarizado (IEC 60848), independiente de la marca de PLC.
  • Se compone de etapas, transiciones, acciones y enlaces, gobernados por 5 reglas de evolución.
  • Soporta secuencias, selecciones (OR), paralelismo (AND), saltos, bucles y macro-etapas.
  • Funciona en tres niveles: funcional, tecnológico y operativo.
  • GEMMA complementa al GRAFCET con gestión de modos de funcionamiento, parada y emergencia.
  • Se implementa en PLCs mediante SFC directo, Ladder con bits de etapa o ST con CASE.
  • Es primo cercano de la Máquina de Estados Finita (FSM), pero añade paralelismo y jerarquía.

El mejor consejo que puedo darte: antes de tu próximo proyecto de automatización, dibuja el GRAFCET. Aunque sea en una servilleta. Tu yo del futuro (y el técnico de mantenimiento que heredará el sistema) te lo agradecerá.

¿Quieres seguir aprendiendo? Consulta nuestra Guía de Automatización Industrial: Flujo de Trabajo Completo para ver cómo encaja el GRAFCET en el flujo global de un proyecto, desde la especificación funcional hasta la puesta en marcha.