Programación de PLC
La norma IEC 61131-3 define cinco lenguajes. No compiten entre sí: cada uno es cómodo para una clase de problema, y en un proyecto real suelen convivir. Lo que no cambia es el método: primero se entiende el proceso, después se escribe.
01Los cinco lenguajes
| Lenguaje | Tipo | Para qué es bueno |
|---|---|---|
| Diagrama de contactos (LD) | gráfico | Lógica combinacional y de mando. Lo lee cualquier electricista. Es el más usado con diferencia. |
| Bloques funcionales (FBD) | gráfico | Procesos con bloques encadenados: PID, filtros, escalados, comunicación. |
| Lista de instrucciones (IL) | textual | Compacto y muy próximo a la máquina. En retirada, pero aparece en equipos antiguos. |
| Texto estructurado (ST) | textual | Cálculos, lazos, manejo de tablas y todo lo que en ladder queda ilegible. |
| Grafcet o SFC | gráfico | Secuencias: etapas, transiciones y acciones. Es el que ordena de verdad una máquina que hace pasos. |
Regla práctica: si el problema se describe con «cuando pase esto y aquello, activar aquello», va en ladder. Si se describe con «primero esto, después aquello, y si falla vuelve al inicio», va en Grafcet. Si hay cuentas de por medio, va en texto estructurado. Forzar todo a ladder produce programas de doscientos renglones que nadie puede leer.
02Diagrama de contactos
| Elemento | Qué significa |
|---|---|
| Contacto normalmente abierto | Conduce cuando el bit vale 1. Se lee «si la señal está activa». |
| Contacto normalmente cerrado | Conduce cuando el bit vale 0. Se lee «si la señal no está activa». |
| Bobina | Escribe el resultado del renglón en un bit: salida o marca. |
| Bobina Set y Reset | Activan o desactivan de manera permanente hasta que el otro actúe. Útiles, pero fáciles de dejar sin su pareja. |
| Detección de flanco | Da un pulso de un solo ciclo cuando la señal cambia. Imprescindible para contar y para disparar acciones una sola vez. |
| Serie y paralelo | Contactos en serie son un Y lógico; en paralelo, un O. |
Es el circuito fundamental del que salen casi todos los demás. En ladder:
marcha paro_nc emergencia_ok motor
---| |----+------|/|------------| |--------------( )---
|
motor |
---| |----+
El contacto motor en paralelo con el pulsador de marcha es la autorretención: una vez arrancado, el renglón se sostiene solo aunque se suelte el pulsador. El paro, en serie, corta ese camino.
El pulsador de paro físico es normalmente cerrado: en reposo entrega 1 a la entrada. Por lo tanto, en el programa se lo representa con un contacto normalmente abierto, no con uno cerrado. Poner un contacto NC en el programa para un pulsador NC físico invierte la lógica: la máquina no arranca nunca, o peor, arranca cuando se aprieta el paro.
La regla que evita el error: el programa se escribe según lo que entrega la entrada, no según cómo se llama el botón. Y se verifica siempre en el monitoreo en línea, mirando el estado real de cada bit.
03Grafcet: pensar en secuencias
- La etapa inicial se activa al arrancar.
- Una transición se franquea si está validada —la etapa anterior activa— y su receptividad es verdadera.
- Al franquearse, se activa la etapa siguiente y se desactiva la anterior, a la vez.
- Varias transiciones simultáneamente franqueables se franquean todas.
- Si una etapa recibe orden de activarse y desactivarse en el mismo instante, queda activa.
- Secuencia lineal: una etapa detrás de otra.
- Divergencia O: dos caminos posibles, se toma uno según la condición.
- Divergencia Y: dos ramas que corren en paralelo y se sincronizan al final.
- Salto y bucle: para repetir o saltear etapas.
Se traduce a ladder de manera mecánica: una marca por etapa, con Set y Reset gobernados por las transiciones. Muchos autómatas lo aceptan directamente como SFC.
Ciclo clásico A+ B+ A− B−: sale el cilindro A, sale el B, entra el A, entra el B.
| Etapa | Acción | Transición a la siguiente |
|---|---|---|
| 0 | Reposo, todo adentro. | Pulsador de ciclo y ambos sensores de retroceso activos. |
| 1 | Avanzar A. | Sensor de A avanzado. |
| 2 | Avanzar B. | Sensor de B avanzado. |
| 3 | Retroceder A. | Sensor de A retrocedido. |
| 4 | Retroceder B. | Sensor de B retrocedido, y vuelve a la etapa 0. |
Escrito así, el programa no puede saltear un paso ni quedarse a mitad de camino sin que se note. Escrito directamente en ladder, con marcas sueltas y sin estructura, es donde aparecen los ciclos que se traban y nadie entiende por qué.
04Del proceso al programa
| Paso | Qué se hace |
|---|---|
| 1 | Escribir en palabras qué hace la máquina, incluyendo qué pasa ante cada falla y cómo se rearma. |
| 2 | Listar entradas y salidas con nombre simbólico, tipo y dirección: es la tabla de asignación. |
| 3 | Dibujar el Grafcet o el organigrama de la secuencia, con sus condiciones. |
| 4 | Escribir el programa por bloques: seguridad, modos, secuencia, salidas, señalización. |
| 5 | Simular o probar en vacío, forzando entradas desde el terminal. |
| 6 | Probar con la máquina, primero en manual y paso a paso, después en automático. |
| 7 | Documentar: programa comentado, tabla de asignación, Grafcet y manual de operación. |
Separar el programa en bloques con un orden fijo: seguridad y condiciones generales, selección de modo (manual, automático, paso a paso), secuencia, gobierno de salidas y señalización. Cada salida física se escribe en un solo lugar, al final, combinando las condiciones de la secuencia con las de seguridad.
Esa última regla —una salida, un lugar— evita de raíz el error de las salidas escritas dos veces, que es el que más tiempo hace perder en la puesta en marcha.
05En el laboratorio
Programar el circuito de autorretención con marcha, paro NC y emergencia, y verificarlo en línea observando el estado de cada bit. Después invertir a propósito el contacto del paro en el programa y analizar exactamente qué pasa y por qué.
Programar la inversión de giro de un motor con enclavamiento entre ambos sentidos y temporización de espera al invertir. Verificar que ningún orden de pulsaciones logra activar los dos contactores a la vez, y agregar además el enclavamiento mecánico y eléctrico en el tablero.
Dibujar el Grafcet de la secuencia A+ B+ A− B− y traducirlo a ladder con una marca por etapa. Implementarlo sobre la maqueta neumática. Agregar después una divergencia O para un ciclo alternativo y comprobar cuánto más simple resulta el cambio con la estructura de etapas.
Entregar a otro grupo el programa con su tabla de asignación y su Grafcet, y pedirles que hagan una modificación funcional sin explicaciones. Lo que tarden es la medida real de la calidad de la documentación.
06Errores frecuentes
| Error | Consecuencia |
|---|---|
| Contacto NC en el programa para un pulsador NC físico | Lógica invertida: la máquina no arranca, o arranca al apretar el paro. |
| Misma salida escrita en varios renglones | Sólo vale el último: la salida parece no responder. |
| Set sin su Reset correspondiente | Bits que quedan activos para siempre y estados imposibles de abandonar. |
| Contar sin detección de flanco | El contador suma una vez por ciclo mientras la señal esté activa: cuentas absurdas. |
| Programar la secuencia con marcas sueltas | Ciclos que se traban o saltean pasos, sin manera clara de diagnosticar. |
| Todo en ladder, incluidos los cálculos | Renglones ilegibles donde el texto estructurado ocupaba tres líneas. |
| Sin modo manual ni paso a paso | Imposible poner a punto la máquina o recuperarla después de una falla. |
| Programa sin comentarios | Nadie puede mantenerlo, y el programa era la documentación de la máquina. |
07Autoevaluación
Nombrá los cinco lenguajes de la IEC 61131-3.
Diagrama de contactos, bloques funcionales, lista de instrucciones, texto estructurado y Grafcet o SFC.
¿Cuándo conviene Grafcet en lugar de ladder?
Cuando el problema es una secuencia: primero esto, después aquello. El ladder es mejor para lógica combinacional y de mando.
¿Qué es la autorretención y cómo se implementa?
Un contacto de la propia salida en paralelo con el pulsador de marcha, de modo que el renglón se sostenga cuando el pulsador se suelta. El paro va en serie y corta ese camino.
Un pulsador de paro NC físico: ¿qué contacto lleva en el programa?
Uno normalmente abierto, porque en reposo la entrada vale 1. El programa se escribe según lo que entrega la entrada, no según cómo se llama el botón.
¿Por qué hace falta detección de flanco para contar?
Porque sin ella el contador incrementa en cada ciclo mientras la señal esté activa. El flanco da un pulso de un solo ciclo por cada cambio.
Enunciá la regla de evolución de Grafcet.
Una transición se franquea si está validada —la etapa anterior activa— y su receptividad es verdadera. Al franquearse, se activa la etapa siguiente y se desactiva la anterior de manera simultánea.
¿Qué diferencia hay entre divergencia O y divergencia Y?
En la O se toma uno de los caminos según la condición; en la Y las ramas corren en paralelo y se sincronizan al final.
¿En qué orden se organiza el programa?
Seguridad y condiciones generales, selección de modo, secuencia, gobierno de salidas y señalización.
¿Por qué cada salida física debe escribirse en un solo lugar?
Porque el PLC ejecuta en orden y sólo vale la última escritura. Concentrarla al final, combinando secuencia y seguridad, elimina de raíz ese error.
¿Para qué sirve el modo paso a paso?
Para poner a punto la máquina y para recuperarla después de una falla, avanzando la secuencia de a una etapa con la supervisión de un operador.