Qué debo saber para aprender a programar un PLC

¿Te has preguntado alguna vez cómo se controla una máquina en una fábrica?
¿O cómo los sistemas industriales funcionan sin descanso, día y noche, con total precisión?
Detrás de esa inteligencia hay un protagonista silencioso: el PLC.
Y aprender a programar un PLC es la llave que abre las puertas del mundo de la automatización industrial.
En este artículo te explicamos, paso a paso y en un lenguaje claro, qué necesitas saber para empezar a programar PLCs desde cero.
Ya seas estudiante, técnico o un curioso de la tecnología, aquí encontrarás una base sólida para comenzar tu camino.
1. ¿Qué es un PLC y por qué aprender a programarlo?
Un PLC (Controlador Lógico Programable) es un pequeño computador diseñado para controlar procesos industriales.
Se encarga de recibir señales de entrada (como sensores o botones), procesarlas con una lógica previamente programada y generar señales de salida (como activar un motor o encender una luz).
Aprender a programar un PLC no solo es una habilidad técnica, es una oportunidad profesional.
La demanda de expertos en automatización crece cada año, y dominar esta tecnología te hace más competitivo en sectores como la industria 4.0, la robótica, la manufactura, y el mantenimiento industrial.
Te puede interesar: Que es un PLC y cómo funciona
2. Entiende el corazón del sistema: el hardware de un PLC
Antes de poder programar un PLC, es importante saber qué es físicamente y cómo está compuesto.
Imagina que el PLC es el cerebro de una máquina, como el cerebro humano lo es para nuestro cuerpo.
Si tú quieres que una máquina piense y actúe por sí misma, necesitas entender cómo funciona ese cerebro.
2.1. ¿Qué es el hardware del PLC?
El hardware es la parte física y electrónica del PLC.
Es decir, lo que puedes tocar. Está formado por varios componentes que trabajan juntos para que el PLC pueda tomar decisiones y controlar una máquina o proceso.
Vamos a conocer cada uno con una analogía sencilla 👇
2.2. CPU (Unidad Central de Procesamiento) – El cerebro
La CPU es el “jefe” del PLC. Se encarga de leer la información que recibe (por ejemplo, si un botón ha sido pulsado), procesarla según un programa que tú le has cargado, y después tomar decisiones (por ejemplo, encender un motor si el botón está pulsado).
📌 Ejemplo real: Imagina que quieres automatizar el riego de un jardín. La CPU del PLC lee si un sensor detecta humedad en el suelo. Si el suelo está seco, activa la bomba de riego. Si el suelo está húmedo, no hace nada.
2.3. Memoria – La libreta del PLC
La memoria es donde el PLC guarda:
- El programa que tú has escrito (las instrucciones que debe seguir).
- Los datos temporales que necesita mientras funciona (por ejemplo, cuánto tiempo lleva encendida una bomba).
📌 Ejemplo: Es como la libreta de notas del PLC, donde anota qué hacer y qué ha pasado últimamente.
2.4. Fuente de alimentación – La batería
El PLC necesita energía para funcionar, igual que cualquier aparato electrónico.
La fuente de alimentación es la parte que transforma la corriente eléctrica en la energía que necesita internamente el PLC.
📌 Ejemplo: Es como el cargador de un móvil. Sin él, el PLC no funciona.
2.5. Módulos de entradas/salidas (E/S) – Los sentidos y los músculos
Los módulos de entrada son como los ojos, oídos y sensores del PLC.
Reciben información del mundo exterior:
- Si un botón ha sido pulsado.
- Si un sensor detecta una pieza.
- Si una temperatura ha subido.
Los módulos de salida son como los brazos y piernas del PLC.
Envían señales para que algo suceda:
- Encender un motor.
- Activar una válvula.
- Encender una luz.
📌 Ejemplo real (Siguiendo con el jardín):
- Entrada: sensor de humedad → “El suelo está seco”
- Salida: activa una electroválvula → “Empieza a regar”
Estos módulos pueden ser de dos tipos:
- Digitales: Solo entienden dos estados: encendido/apagado, 1 o 0. Ej: un botón o una lámpara.
- Analógicos: Entienden valores intermedios. Ej: una señal que indica si la temperatura está a 20, 25 o 30 grados.
2.6. ¿Cómo se conectan estos componentes?
Todo esto va montado sobre una base o bastidor (también llamado rack), y los módulos pueden ir conectándose uno junto al otro, como fichas de Lego.

En resumen (para que no se te olvide):
| Componente | ¿Qué hace? | Analogía |
|---|---|---|
| CPU | Procesa la lógica y toma decisiones | Cerebro |
| Memoria | Guarda el programa y los datos | Libreta de apuntes |
| Fuente de alimentación | Suministra energía al PLC | Batería o cargador |
| Módulos de entrada | Reciben información del entorno | Sentidos |
| Módulos de salida | Ejecutan acciones físicas | Músculos |
3. Entradas y salidas: cómo el PLC interactúa con el entorno
Una de las funciones más importantes de un PLC es comunicarse con el mundo exterior.
Para eso, necesita “escuchar” lo que ocurre a su alrededor y “actuar” en consecuencia.
Aquí es donde entran en juego las entradas y salidas, también conocidas como E/S.
Piensa en esto como si el PLC fuera una persona:
- Sus entradas son los sentidos (lo que ve, oye, toca).
- Sus salidas son las acciones que puede hacer (mover, encender, apagar).
Vamos a ver cómo funcionan y por qué son tan importantes.
3.1. ¿Qué es una entrada?
Una entrada es una señal que llega al PLC desde el mundo real.
Es información que el PLC necesita para tomar decisiones.
Puede venir de un botón, un sensor, un interruptor, una fotocélula, un detector de temperatura, entre otros.
📌 Ejemplos de entradas:
- Un botón pulsado por un operario.
- Un sensor que detecta si hay una caja en una cinta transportadora.
- Un interruptor de nivel que indica si un tanque está lleno.
3.2. ¿Qué es una salida?
Una salida es una señal que el PLC envía hacia el exterior para activar o controlar un dispositivo físico.
El PLC decide qué hacer en función de las entradas y de la lógica programada.
📌 Ejemplos de salidas:
- Encender un motor eléctrico.
- Activar una lámpara.
- Abrir una válvula neumática.
- Emitir una alarma sonora.
3.3. ¿Cómo se relacionan las entradas y salidas?
El PLC primero lee las entradas (por ejemplo, detecta que se pulsó un botón), luego ejecuta su programa (según una lógica que tú le diste) y finalmente activa o desactiva las salidas (como encender un motor si el botón está presionado).
📌 Ejemplo práctico de la vida real:
Imagina que tienes una puerta automática:
- Entrada: Un sensor detecta que alguien se acerca.
- Lógica del programa: “Si alguien está delante, abre la puerta”.
- Salida: El PLC envía una señal para abrir la puerta.
3.4. Tipos de entradas y salidas
No todas las señales que recibe o envía un PLC son iguales. Algunas solo indican si algo está encendido o apagado, mientras que otras miden valores que cambian constantemente, como la temperatura o la velocidad.
Por eso, es importante conocer los dos grandes tipos de señales que manejan los PLCs: digitales y analógicas.
Aquí te explicamos de forma sencilla qué son, cómo se diferencian y cuándo se usa cada una.
a) Digitales (todo o nada)
Solo tienen dos estados: encendido o apagado (1 o 0), sí o no.
Se usan para detectar cosas simples: ¿Está activado? ¿Está presente? ¿Está encendido?
📌 Ejemplos:
- Botón ON/OFF (entrada digital).
- Luz piloto encendida (salida digital).
- Sensor que detecta presencia (entrada digital).
b) Analógicas (valores variables)
Pueden tomar muchos valores diferentes, no solo 0 o 1.
Se usan para medir cosas como temperatura, nivel, presión, velocidad, etc.
📌 Ejemplos:
- Sensor de temperatura que envía 20 °C (entrada analógica).
- Variador de frecuencia que controla la velocidad de un motor (salida analógica).
3.5. ¿Cómo se conectan?
Los dispositivos físicos se conectan a los módulos de entrada y salida del PLC.
Cada punto de conexión tiene una dirección en memoria, que el programa utiliza para leer o escribir información.
📌 Ejemplo sencillo:
- El botón “Start” puede estar conectado a la entrada I0.0.
- El motor puede estar conectado a la salida Q0.0.
En el programa tú escribirás: 🟢 Si I0.0 = 1 (el botón está pulsado), entonces activar Q0.0 (encender motor).
3.6. ¿Qué es la imagen de proceso?
Una vez por cada ciclo, el PLC lee todas las entradas y guarda sus valores en una especie de “fotografía” de memoria llamada imagen de proceso de entradas.
Después de ejecutar el programa, actualiza la imagen de salidas, que luego se envía físicamente a los dispositivos.
Esto es importante porque si un sensor envía una señal muy rápida y desaparece antes de que el PLC la lea, podría no ser detectada.
Por eso se usan estrategias como memorias intermedias o detección de flancos.
En resumen: lo que debes recordar sobre entradas y salidas
| Tipo | ¿Qué hace? | Ejemplos comunes |
|---|---|---|
| Entrada digital | Detecta ON/OFF | Botones, sensores de presencia |
| Entrada analógica | Mide variables | Sensor de temperatura, nivel |
| Salida digital | Activa o desactiva | Lámpara, válvula, relé |
| Salida analógica | Controla intensidad | Motor de velocidad variable |
4. Organización del programa: bloques, funciones y estructura lógica
Cuando aprendes a programar un PLC, no se trata solo de escribir instrucciones una detrás de otra sin orden.
Todo buen programa necesita estructura, lógica y claridad.
Y para eso, se utilizan bloques de programación.
Podemos imaginarlo como construir una casa:
- No haces todo de una vez.
- Divides el trabajo en partes: cimientos, paredes, techos, electricidad…
- Cada parte tiene su propósito.
En el mundo del PLC, esas partes son los POUs (Program Organization Units), definidos por el estándar IEC 61131-3, el más usado internacionalmente.
4.1. ¿Qué son los bloques o POUs?
Un POU (Unidad de Organización del Programa) es una porción de código que cumple una función específica dentro del programa general.
Hay tres tipos principales:
a) Program (Programa Principal)
Es el bloque principal donde se ejecuta la lógica general del sistema.
Es como el “guion” del PLC. Dentro del programa, puedes llamar a otros bloques que hayas creado.
📌 Ejemplo real: En una línea de embotellado, el programa principal controla toda la línea:
- Activar cinta transportadora.
- Encender el motor de llenado.
- Comprobar sensores.
Este bloque se ejecuta en cada ciclo de scan.
b) Function Block (Bloque de Función – FB)
Un Function Block es un bloque reutilizable que puede tener memoria interna.
Es ideal cuando necesitas repetir una misma lógica en varios sitios.
📌 Ejemplo práctico: Tienes tres bombas que deben encenderse y apagarse con un temporizador.
En lugar de escribir el mismo código tres veces, creas un bloque “ControlBomba” y lo usas para cada una. Solo cambias los parámetros.
Es como tener una “plantilla inteligente” que recuerda lo que ha hecho.
c) Function (Función – FC)
Una Function realiza un cálculo o una tarea específica y devuelve un resultado.
No tiene memoria interna. Piensa en ella como una calculadora de una sola operación.
📌 Ejemplo práctico:
- Calcular la media entre dos temperaturas.
- Convertir grados Celsius a Fahrenheit.
- Detectar si una variable está dentro de un rango.
La función entra, calcula y sale.
4.2. ¿Por qué organizar así un programa?
Porque esto te permite:
- Tener programas más ordenados y claros.
- Reutilizar código (sin tener que escribirlo de nuevo).
- Facilitar el mantenimiento y la lectura (por ti o por otros técnicos).
- Dividir el trabajo si hay más de un programador.
Piensa en grande: en una fábrica puede haber cientos de entradas y salidas.
Si no organizas tu programa por partes, el caos está asegurado.
Ejemplo visual y sencillo:
Supongamos que estás automatizando una lavadora industrial.
| Acción | Tipo de bloque | ¿Qué haría? |
|---|---|---|
| Controlar el motor principal | FB (Bloque de Función) | Inicia, detiene, mide el tiempo |
| Calcular nivel de agua | Function | Compara valor del sensor y devuelve resultado |
| Secuencia completa de lavado | Program principal | Llama a varios FBs según el paso del ciclo |
4.3. Buenas prácticas al organizar un programa
Una vez que entiendes cómo se estructura un programa de PLC con bloques, funciones y lógica, el siguiente paso es hacerlo bien desde el principio.
Organizar tu código de forma clara, ordenada y profesional no solo facilita tu trabajo, sino que también ayuda a que otros técnicos —o tú mismo en el futuro— puedan entenderlo, mantenerlo y ampliarlo sin perder tiempo.
Piensa en tu programa como un manual de instrucciones: si está bien escrito, todo fluye; si está desordenado, es un dolor de cabeza.
Aquí te comparto algunas buenas prácticas que como programador debes aplicar siempre para lograr un código limpio, eficiente y fácil de mantener.
- Usa nombres descriptivos para los bloques (nada de “FB1”, mejor “ControlMotor”).
- Evita repetir código innecesario. Si algo se repite, ponlo en un FB.
- Agrupa funcionalidades por área (Ej: un bloque para el motor, otro para válvulas, otro para alarmas).
- Documenta cada bloque con un comentario breve que explique para qué sirve.
5. Variables y tipos de datos: cómo almacenar y manejar la información
Cuando programas un PLC, necesitas una forma de guardar información temporal para poder tomar decisiones.
Esa información se guarda en lo que llamamos variables.
Podemos decir que las variables son como cajones donde el PLC guarda datos mientras trabaja.
Cada cajón tiene un nombre, un tipo de dato y un valor.
5.1. ¿Qué es una variable?
Una variable es un espacio en la memoria del PLC donde se guarda un dato, como:
- Si un sensor está activado.
- Cuántas veces ha girado un motor.
- A qué temperatura está una caldera.
- Cuántos productos se han fabricado hoy.
Es como si el PLC tuviera una libreta donde anota todo lo que necesita recordar mientras ejecuta su programa.
5.2. ¿Qué es un tipo de dato?
El tipo de dato define qué clase de información se guarda en esa variable: si es un número, un texto, un valor verdadero/falso, etc.
Cada tipo de variable ocupa un espacio diferente en la memoria y sirve para cosas distintas.
5.3. Principales tipos de datos en programación de PLCs
A continuación, te explico los más comunes con ejemplos sencillos:
a) BOOL (Booleano) — Verdadero o Falso
Solo tiene dos valores posibles: TRUE (verdadero) o FALSE (falso).
Es el tipo de dato más utilizado en PLCs.
📌 Ejemplos:
- ¿Está pulsado el botón? → TRUE o FALSE
- ¿El motor está encendido? → TRUE o FALSE
- ¿Hay presencia de producto? → TRUE o FALSE
Ideal para trabajar con sensores, interruptores y condiciones lógicas.
b) INT / DINT — Números enteros
- INT guarda números enteros pequeños (de -32,768 a 32,767).
- DINT guarda números enteros más grandes (de -2,147,483,648 a +2,147,483,647).
📌 Ejemplos:
- Contar cuántas botellas han pasado por la cinta.
- Medir el número de ciclos de una máquina.
- Indicar el nivel de stock en una celda de almacenamiento.
“INT” significa “integer”, es decir, número entero.
c) REAL / LREAL — Números con decimales
- REAL permite guardar valores con punto decimal, como 23.5 o -17.8.
- LREAL es similar, pero con mayor precisión (más decimales).
📌 Ejemplos:
- Temperatura medida por un sensor: 26.3 ºC
- Velocidad de un motor: 1450.75 rpm
- Presión en una tubería: 1.82 bar
Usa este tipo de datos siempre que necesites precisión en las medidas.
d) STRING — Texto
Este tipo guarda cadenas de texto, como palabras o frases cortas.
📌 Ejemplos:
- Mostrar “PUERTA ABIERTA” en una pantalla HMI.
- Registrar un código de error como “E01” o “ALARM_3”.
Muy útil cuando trabajas con interfaces HMI o sistemas de supervisión (SCADA).
e) Otras estructuras útiles
Además de las variables simples, puedes tener:
- Arrays (arreglos): Una serie de datos del mismo tipo. Ej: temperaturas de 5 sensores.
- Estructuras (STRUCT): Conjunto de variables agrupadas. Ej: todos los datos de un motor (estado, velocidad, temperatura).
Estas se usan más en proyectos avanzados o cuando manejas muchas señales similares.
Ejemplo real y simple:
Imagina que estás controlando una bomba de agua:
| Variable | Tipo de dato | ¿Qué guarda? |
|---|---|---|
| BombaEncendida | BOOL | Si la bomba está funcionando o no |
| NivelTanque | INT | Cuánta agua hay en litros |
| PresionActual | REAL | Presión del sistema en bar |
| MensajeEstado | STRING | Texto mostrado al operario (“Bomba OK”) |
5.4. Buenas prácticas al usar variables
Aprender a crear variables es un gran paso. Pero saber usarlas correctamente es lo que te convertirá en un buen programador de PLCs.
Piensa en un programa como en una caja de herramientas: si todo está desordenado, perderás tiempo buscando la herramienta adecuada.
Pero si tienes todo etiquetado, limpio y bien clasificado, puedes trabajar más rápido, cometer menos errores y hacer que otros también entiendan tu código.
En esta sección te comparto algunos consejos prácticos que aplicamos en entornos reales de automatización industrial, para que tu programación sea más profesional, eficiente y fácil de mantener.
- Usa nombres claros y descriptivos (por ejemplo, “Sensor_Temperatura” en lugar de “X1”).
- Organiza las variables por áreas o funciones.
- No uses más variables de las necesarias.
- Si varias variables están relacionadas, usa estructuras o arrays.
Un programa bien hecho se entiende con solo leer los nombres de las variables.
Si entiendes bien las variables, puedes controlar cualquier proceso.
Son los ladrillos básicos de toda programación.
6. El ciclo de scan: cómo piensa y actúa un PLC
Una de las preguntas más comunes entre quienes empiezan en el mundo de los PLCs es:
- ¿Cómo ejecuta el PLC un programa?
- ¿Cómo “piensa”?
La respuesta está en lo que llamamos el ciclo de scan.
Es el proceso repetitivo que sigue el PLC una y otra vez, las 24 horas del día, sin detenerse, mientras esté encendido.
6.1. Puedes imaginarlo como el “latido” del PLC
En cada latido, el PLC:
- Observa lo que pasa a su alrededor.
- Toma decisiones con base en su lógica.
- Ejecuta acciones en el mundo físico.
6.2. Las tres fases del ciclo de scan
El ciclo de scan tiene tres etapas bien definidas que se repiten miles de veces por segundo:
a) Lectura de entradas
El PLC lee el estado actual de todos los dispositivos conectados a sus entradas (sensores, botones, interruptores, etc.).
Guarda estos valores en su memoria interna (imagen de entrada).
📌 Ejemplo real:
- ¿Se ha pulsado el botón de encendido?
- ¿El sensor detecta una pieza?
- ¿El nivel del tanque está bajo?
Importante: solo lee el valor al comienzo del ciclo. Si un sensor se activa por un instante muy corto y se apaga antes de esa lectura, el PLC no lo detectará.
b) Ejecución del programa
Con los valores leídos, el PLC procesa el programa que tú le has cargado, siguiendo la lógica que hayas escrito: si esto sucede, haz aquello.
La ejecución sigue un orden lógico, dependiendo del lenguaje de programación utilizado:
Tipos de ejecución por lenguaje:
- Ladder Diagram (LD): de arriba hacia abajo, de izquierda a derecha.
- Instruction List (IL): instrucción por instrucción, en orden lineal.
- Structured Text (ST): como un programa tradicional (tipo Pascal o C).
- Function Block Diagram (FBD): siguiendo el flujo de datos entre bloques.
- SFC (Grafcet): paso a paso, evaluando transiciones entre etapas.
📌 Ejemplo real: Si el botón está pulsado y no hay alarma → activar el motor.
c) Actualización de salidas
Después de ejecutar el programa, el PLC actualiza sus salidas físicas: enciende motores, abre válvulas, prende luces, etc.
Esto se hace copiando el valor calculado en la memoria de salidas hacia los módulos de salida física.
📌 Ejemplo real: Si el programa dice que el motor debe encenderse, el PLC envía corriente al relé que activa ese motor.
6.3. ¿Qué es el tiempo de scan?
Es el tiempo que tarda el PLC en completar todo un ciclo (leer entradas, ejecutar el programa y actualizar salidas).
Suele ser de milisegundos (1 ms a 10 ms en promedio).
Depende de la velocidad de la CPU y la cantidad de lógica programada.
Un programa más largo o con muchas operaciones puede aumentar el tiempo de scan, lo cual puede hacer que el sistema responda más lento.
6.4. ¿Y qué pasa después?
Vuelve a empezar. Cuando termina un ciclo de scan, el PLC comienza el siguiente inmediatamente, sin pausa.
Así, el PLC está constantemente evaluando y reaccionando a lo que ocurre.
6.5. Memoria intermedia: imagen de entradas y salidas
Durante el ciclo de scan, el PLC no interactúa directamente con las entradas y salidas físicas.
Trabaja con copias en memoria, llamadas:
🟢 Imagen de entrada: la “foto” de los valores de entrada al inicio del ciclo.
🔴 Imagen de salida: se llena al final del programa y se envía a los dispositivos.
Esto es muy importante, porque significa que:
Si una entrada cambia su estado durante la ejecución del programa, ese cambio no será tenido en cuenta hasta el siguiente ciclo.
6.6. Simulación del ciclo de scan (una forma fácil de visualizarlo)
Piensa en un semáforo controlado por PLC:
-
El PLC lee:
-
Botón de peatón: pulsado
-
Sensor de coches: detectado
-
-
Ejecuta el programa:
-
Si botón pulsado y semáforo verde → cambiar a rojo
-
-
Actualiza salidas:
-
Apaga la luz verde
-
Enciende la luz roja
-
Activa luz peatonal
-
Después de eso… vuelve a empezar. Y lo hace cientos o miles de veces por segundo.
En resumen: ciclo de scan del PLC
| Etapa | ¿Qué hace el PLC? | Qué debes tener en cuenta |
|---|---|---|
| Lectura de entradas | Copia los valores de sensores y botones | Solo lee una vez por ciclo |
| Ejecución del programa | Aplica la lógica programada | Solo usa lo leído en ese ciclo |
| Actualización de salidas | Enciende motores, luces, válvulas | Según los resultados del programa |
El ciclo de scan es el alma del PLC. Si entiendes bien cómo funciona, serás capaz de diagnosticar problemas, optimizar programas y diseñar mejores soluciones.
7. Lenguajes de programación: elige tu herramienta
Así como en la vida usamos distintos idiomas para comunicarnos (español, inglés, francés…), los PLCs también tienen diferentes lenguajes para expresar su lógica de control.
Algunos son visuales, otros son textuales, pero todos sirven para decirle al PLC: “Si pasa esto, entonces haz aquello”.
Estos lenguajes están estandarizados por la norma IEC 61131-3, que define cinco lenguajes de programación oficiales para PLCs.
7.1. ¿Cuál es el mejor lenguaje?
No hay uno mejor que otro. Todo depende de:
- Lo que quieras automatizar.
- Tu nivel de experiencia.
- El estilo que prefieras (gráfico o textual).
- El tipo de industria o empresa (algunas tienen preferencias).
Veamos uno por uno 👇
a) Ladder Diagram (LD) – Diagrama de escalera
Es el lenguaje más usado en el mundo industrial, sobre todo por técnicos eléctricos.
Se parece a los esquemas de relés tradicionales.
Visualmente es como una escalera: líneas horizontales (llamadas “rungs”) conectan dos barras verticales.
Ideal para:
- Gente que viene del mundo eléctrico.
- Control de encendido/apagado.
- Diagnóstico fácil (es muy visual).
Muchos comienzan con este lenguaje porque es intuitivo y fácil de leer.
b) Instruction List (IL) – Lista de instrucciones
Este lenguaje se parece al ensamblador de los computadores antiguos. Es muy simple, pero poco visual.
🛑 Nota: La norma IEC ya no lo recomienda en proyectos nuevos, pero aún lo encuentras en PLCs antiguos o en mantenimiento de equipos existentes.
Bueno para:
- Programas pequeños o muy simples.
- Gente que viene del mundo de la electrónica o microcontroladores.
c) Structured Text (ST) – Texto estructurado
Es un lenguaje textual y muy potente, similar a otros lenguajes de programación como Pascal, C o Python.
Ideal para:
- Cálculos complejos.
- Comparaciones, bucles, condiciones múltiples.
- Integraciones con sistemas avanzados.
Muy usado en automatización moderna, SCADA y proyectos complejos.
d) Function Block Diagram (FBD) – Diagrama de bloques de función
Este lenguaje es gráfico y se basa en bloques que representan funciones lógicas. Se conectan entre sí mediante líneas que muestran el flujo de datos.
Muy útil para:
- Procesos continuos.
- Visualizar relaciones entre múltiples variables.
- Proyectos donde varias señales entran y salen de un mismo bloque.
Ideal para quien aprende mejor de forma visual.
e) Sequential Function Chart (SFC) – Gráfico de funciones secuenciales (Grafcet)
Este lenguaje divide el proceso en pasos (estados) y transiciones (condiciones para pasar de un paso al otro).
Es muy usado para automatizar procesos secuenciales, donde las cosas deben pasar en cierto orden.
Ideal para:
- Procesos secuenciales.
- Automatización por etapas (fases).
- Sistemas complejos como líneas de ensamblaje.
7.2. Consejo práctico: mezcla de lenguajes
Lo interesante de muchos entornos de programación actuales (como TIA Portal o Codesys) es que puedes combinar varios lenguajes en un mismo proyecto.
📌 Ejemplo:
- Usar LD para la lógica principal.
- Usar ST para cálculos complejos.
- Usar SFC para procesos con etapas.
Eso te permite usar lo mejor de cada lenguaje según la necesidad.
En resumen:
| Lenguaje | Tipo | Ideal para |
|---|---|---|
| LD (Ladder) | Gráfico | Técnicos, lógica simple, diagnósticos |
| IL (Instruction List) | Textual | Equipos antiguos, mantenimiento |
| ST (Structured Text) | Textual | Programas complejos, cálculos, lógica avanzada |
| FBD (Function Block Diagram) | Gráfico | Procesos visuales y continuos |
| SFC (Sequential Function Chart) | Gráfico por etapas | Procesos secuenciales (lavado, ensamblaje, etc.) |
No te obsesiones con dominar todos los lenguajes a la vez. Comienza con uno —como Ladder— y avanza poco a poco.
La clave está en entender la lógica detrás de los procesos.
El lenguaje es solo una herramienta.
8. Funciones lógicas básicas, temporizadores y contadores: tus primeros bloques de construcción
Cuando programas un PLC, necesitas decirle cuándo y cómo debe activar una salida en función de ciertas condiciones. Para eso, usamos funciones lógicas, temporizadores y contadores.
Si el PLC fuera un humano, esto sería como enseñarle a tomar decisiones:
-
“Si es de día, abre la ventana.”
-
“Si han pasado 5 segundos, enciende la bomba.”
-
“Si ya se han contado 10 cajas, detén la cinta.”
Vamos a ver cómo se hace esto en programación de PLC, ¡paso a paso!
8.1. Funciones lógicas básicas
Las funciones lógicas son instrucciones que comparan condiciones y devuelven un resultado: verdadero o falso. Con ellas puedes construir la lógica de control de casi cualquier máquina o sistema.
a) AND (Y)
Devuelve TRUE (verdadero) solo si todas las condiciones son verdaderas.
📌 Ejemplo: Si el botón de marcha Y la tapa están cerrados → encender el motor.
| Entrada 1 | Entrada 2 | Resultado (AND) |
|---|---|---|
| FALSO | FALSO | FALSO |
| VERDADERO | FALSO | FALSO |
| VERDADERO | VERDADERO | ✅ VERDADERO |
b) OR (O)
Devuelve TRUE si al menos una condición es verdadera.
📌 Ejemplo: Si el pulsador de emergencia O el sensor de seguridad están activados → detener la máquina.
| Entrada 1 | Entrada 2 | Resultado (OR) |
|---|---|---|
| FALSO | FALSO | FALSO |
| VERDADERO | FALSO | ✅ VERDADERO |
| VERDADERO | VERDADERO | ✅ VERDADERO |
c) NOT (NO)
Invierte el valor de la condición.
📌 Ejemplo: Si NO hay error → arrancar motor.
| Entrada | Resultado (NOT) |
|---|---|
| VERDADERO | ❌ FALSO |
| FALSO | ✅ VERDADERO |
8.2. Temporizadores (Timers)
Los temporizadores permiten que una acción se realice después de cierto tiempo. Son ideales para retrasos, ciclos de encendido/apagado, tiempos de espera, etc.
Hay varios tipos, pero los más comunes son:
a) TON (Temporizador de retardo a la conexión)
Activa una salida después de que la entrada ha estado encendida durante un tiempo determinado.
📌 Ejemplo práctico: Si el sensor de presencia detecta algo durante 5 segundos seguidos, entonces activa una alarma.
Ideal para evitar falsas alarmas por señales breves o inestables.
b) TOFF (Temporizador de retardo a la desconexión)
La salida permanece activa durante un tiempo después de que la entrada se ha apagado.
📌 Ejemplo práctico: Cuando el botón se suelta, la bomba sigue funcionando 3 segundos más antes de apagarse.
c) TP (Temporizador de pulso)
Genera una señal de salida de duración fija una vez que la entrada se activa, sin importar cuánto dure la señal de entrada.
📌 Ejemplo práctico: Cuando presionas un botón, se activa una luz durante exactamente 2 segundos, aunque el botón se mantenga pulsado.
8.3. Contadores (Counters)
Los contadores permiten que el PLC cuente eventos: productos que pasan, ciclos realizados, pulsos de entrada, etc. Son perfectos para tareas repetitivas o control de cantidades.
Los más usados son:
a) CTU (Contador ascendente)
Cuenta hacia arriba cada vez que se activa una señal de entrada.
📌 Ejemplo: Cuenta cuántas botellas pasan por un sensor. Cuando llega a 20, detiene la línea.
b) CTD (Contador descendente)
Parte de un valor preestablecido y resta 1 cada vez que se activa.
📌 Ejemplo: Tienes 10 cajas para llenar. Cada vez que se llena una, el contador baja. Cuando llega a 0, activa una señal para pedir reposición.
c) Reset (Reinicio de contadores)
Puedes reiniciar un contador a 0 usando una condición especial (otro botón, un sensor, una señal).
📌 Ejemplo: Cuando presionas el botón “Reiniciar”, el contador de piezas vuelve a 0.
Ejemplo de la vida real con lógica, temporizador y contador:
Imagina que tienes una máquina empacadora con este comportamiento:
-
Cuando el sensor detecta una caja (entrada digital), espera 2 segundos (TON).
-
Luego activa una cinta para mover la caja (salida digital).
-
Cada vez que una caja pasa, se suma 1 al contador (CTU).
-
Cuando el contador llega a 10, detiene la cinta y enciende una luz para que el operario retire el paquete completo.
¡Con solo lógica básica, temporizadores y contadores puedes automatizar miles de tareas industriales!
En resumen:
| Elemento | Qué hace | Ejemplo |
|---|---|---|
| AND, OR, NOT | Lógica de condiciones | Encender si botón y sensor están activos |
| TON | Espera para activar | Espera 5s antes de encender |
| TOFF | Espera para desactivar | Mantener encendido tras apagar |
| TP | Pulso de tiempo fijo | Luz encendida por 2s |
| CTU | Contador hacia arriba | Contar piezas |
| CTD | Contador hacia abajo | Control de stock |
| Reset | Reiniciar contador | Botón de reinicio |
Con lógica básica, tiempos y contadores ya puedes empezar a crear tus propios programas.
Prueba con simuladores o ejemplos reales sencillos. Equivocarte es parte del aprendizaje.
9. Algoritmos, resolución de problemas y depuración
Antes de escribir un programa en un PLC, lo más importante es tener claro qué quieres que haga y en qué orden deben ocurrir las cosas.
Esto se llama pensar el algoritmo, y es como hacer un plan antes de empezar.
9.1. ¿Qué es un algoritmo?
Es simplemente una lista de pasos ordenados para resolver un problema.
📌 Ejemplo simple:
- Si el tanque está vacío → encender la bomba
- Si el tanque está lleno → apagar la bomba
¡Eso ya es un algoritmo!
9.2. Herramientas para planificar tu programa
- Dibuja un diagrama de flujo: como un mapa con flechas que muestra qué pasa primero y qué pasa después.
- Haz una lista paso a paso (pseudocódigo): escribe con palabras simples lo que debe hacer el PLC.
Esto te ayuda a organizar las ideas antes de tocar el software.
9.3. ¿Qué hacer si algo no funciona?
Cuando tu programa no funciona como esperas, no te desesperes. Revisa paso por paso:
- ¿Están llegando bien las señales de entrada (botones, sensores)?
- ¿La lógica del programa está bien escrita?
- ¿Las salidas (motores, luces) responden correctamente?
Puedes usar el software del PLC para:
- Ver qué está pasando en tiempo real.
- Forzar señales para hacer pruebas.
- Buscar errores y corregirlos poco a poco.
Ejemplos de fallos comunes:
| Problema | Posible causa |
|---|---|
| El motor no arranca | El botón no fue detectado |
| El contador no suma | No se está contando correctamente |
| La luz se enciende sola | Hay un error en la lógica del programa |
9.4. Documenta tu programa
Es muy importante escribir comentarios y usar nombres claros para las variables.
Así, tú y cualquier otra persona podrá entenderlo más adelante.
📌 Ejemplo: En lugar de usar “X1”, usa “Botón_Inicio”.
Y añade una nota: // Esta parte enciende el motor cuando se pulsa el botón.
En resumen:
- Piensa antes de programar.
- Haz un plan sencillo con pasos claros.
- Si algo falla, revisa una cosa a la vez.
- Deja tu trabajo bien explicado.
Un buen programa no es el que funciona a la primera, sino el que está bien pensado, fácil de entender y fácil de corregir.
10. Documentación: el detalle que marca la diferencia
Uno de los errores más comunes al aprender a programar un PLC es no dejar por escrito lo que hiciste o poner nombres que no se entienden.
Y aunque el programa funcione… Si no está bien documentado, luego ni tú mismo sabrás cómo lo hiciste.
10.1. ¿Qué significa “documentar”?
Es simplemente explicar lo que hace tu programa y poner nombres claros a cada parte.
10.2. ¿Por qué es tan importante?
- Te ayuda a entender tu programa si lo revisas después de un tiempo.
- Ayuda a tus compañeros a trabajar contigo o a continuar tu trabajo.
- Facilita encontrar y corregir errores más rápido.
Es una buena práctica profesional. ¡Te hace ver como un experto!
10.3. ¿Cómo documentar y organizar programas de un PLC?
Documentar bien tu programa significa hacerlo fácil de entender para ti y para los demás, hoy y en el futuro.
No se trata solo de que funcione, sino de que cualquiera pueda leerlo y saber qué hace sin adivinar.
Aquí te dejo tres claves sencillas para una buena documentación:
- Usa nombres claros para tus variables
- En vez de “X1”, escribe “Botón_Inicio”.
- En vez de “Y3”, usa “Luz_Alarma”.
- Escribe comentarios en el programa
- Pequeñas notas que expliquen qué hace cada parte.
- Ejemplo: // Si el tanque está lleno, se apaga la bomba
- Agrupa las variables por función o zona
- Ejemplo: todas las variables del motor, juntas.
Ejemplo comparativo:
| Sin documentación | Con documentación |
|---|---|
| X1, Y2, M3 | Botón_Start, Luz_OK, Motor_ON |
| Sin comentarios | // Motor se enciende si botón está pulsado |
En resumen:
- Documentar es explicar.
- Usa nombres fáciles de entender.
- Añade pequeñas notas en tu código.
- Piensa que alguien más va a leer tu programa.
No hagas magia, haz que tu programa hable claro. Si lo puedes explicar, lo puedes mejorar.
11. Más allá del PLC: comunicación, HMI y el ecosistema industrial
Aprender a programar un PLC es solo el comienzo. En la realidad de una fábrica o planta industrial, el PLC no trabaja solo.
Forma parte de un sistema más grande y conectado.
11.1. ¿Qué significa esto?
Un PLC es como el cerebro de la automatización. Pero necesita:
- “Ojos” para ver lo que ocurre (sensores).
- “Brazos” para actuar (motores, válvulas, luces).
- Y también una “pantalla” para que el operario pueda ver y controlar lo que está pasando.
11.2. ¿Qué es un HMI?
HMI significa Interfaz Humano-Máquina.
Es una pantalla táctil o panel que se conecta al PLC y permite:
- Ver qué está haciendo la máquina.
- Encender o apagar funciones.
- Mostrar errores o mensajes de estado.
- Ajustar parámetros (por ejemplo, cambiar el tiempo de una operación).
📌 Ejemplo real: En una embotelladora, el operario puede ver cuántas botellas se han llenado, detener la línea o reiniciar el sistema… todo desde una pantalla.
11.3. ¿Qué es un sistema SCADA?
SCADA es un sistema que supervisa y controla varios procesos industriales desde una computadora.
- Se usa para ver en una sola pantalla todo lo que pasa en una planta completa.
- Muestra alarmas, históricos de datos, gráficos de producción…
- Puede controlar varios PLCs al mismo tiempo.
📌 Ejemplo: En una planta de tratamiento de agua, un SCADA te permite ver el estado de los tanques, bombas, válvulas y sensores desde la oficina.
11.4. ¿Y cómo se comunican entre ellos?
Todos estos dispositivos (PLC, HMI, SCADA) se conectan entre sí usando redes de comunicación industrial.
Algunas de las más usadas son:
▪️Modbus
▪️Profinet
▪️Profibus
Estos protocolos permiten que la información fluya rápida y segura entre los dispositivos.
📌 Ejemplo: El PLC detecta que un tanque está lleno, y en menos de un segundo, el HMI muestra ese dato en pantalla, y el SCADA lo registra en un gráfico.
En resumen:
| Componente | ¿Qué hace? |
|---|---|
| PLC | Toma decisiones y controla el proceso |
| HMI | Permite al operario ver y controlar lo que pasa |
| SCADA | Supervisa todo el sistema desde una PC |
| Red de comunicación | Conecta todo entre sí |
Hoy en día, saber programar un PLC no basta. Debes entender cómo se comunica con su entorno. Eso te convierte en un profesional completo.
12. Conclusión: Tu camino como programador de PLC comienza aquí
Has llegado al final de esta guía, y eso ya dice mucho de ti.
Hoy has descubierto lo esencial para empezar a programar un PLC:
Desde cómo funciona el hardware, cómo se organizan los programas, cómo se ejecuta la lógica paso a paso, hasta cómo integrar el PLC con otros sistemas como HMI, SCADA o redes de comunicación.
Y, sobre todo, has aprendido que la programación de PLCs no es un misterio, sino un camino estructurado, emocionante y lleno de oportunidades profesionales.
Un mensaje para ti, que estás empezando
No necesitas ser un genio ni tener experiencia previa para entrar en el mundo de la automatización industrial.
Solo necesitas curiosidad, constancia y un paso cada vez.
Es normal que al principio parezca complicado. Todos los que hoy somos expertos también empezamos sin entender qué era un ciclo de scan, una variable BOOL o una red Profinet.
No te desesperes. No lo aprendes todo en un día.
Esta es una carrera de fondo, no una carrera de velocidad.
Y lo más importante: se aprende haciendo.

¿Quieres aprender a programar PLCs?
Tanto si estás dando tus primeros pasos como si ya trabajas en el sector, nuestros cursos de programación de PLC y automatización industrial están diseñados para ayudarte a avanzar de forma real, práctica y profesional.
Disponemos de cursos presenciales totalmente actualizados:
🔗 Ver cursos presenciales de Automatización Industrial>>
Y también de cursos online que puedes realizar desde casa, a tu ritmo:
🔗 Ver cursos online de Automatización>>
Además, todos nuestros cursos son bonificables por FUNDAE, lo que significa que si estás trabajando, tu empresa puede utilizar los créditos para la formación de sus trabajadores.
Somos Centro Colaborador de Siemens para la Formación en Automatización Industrial y Digitalización.
Eso significa que en nuestras clases aprendes con tecnología real de Siemens, materiales didácticos oficiales y escenarios de práctica que se utilizan en la industria actual.
Y si eres quien toma decisiones en tu empresa sobre la formación del equipo, te ofrecemos soluciones de formación In Company totalmente personalizadas.
Nos adaptamos a tus necesidades: duración, temario, nivel técnico… tú eliges el rumbo, nosotros lo diseñamos.
👉 Da hoy el primer paso hacia tu futuro profesional.
Visita nuestra web, elige tu curso ideal y empieza a construir tu carrera como programador de PLCs y sistemas de automatización industrial.
Creemos en la formación que transforma. Si tú también lo crees, te esperamos en clase.
Suscríbete y forma parte de la comunidad online de AULA21
Únete a nuestra lista de correo para recibir las últimas noticias y actualizaciones de la comunidad.
You have Successfully Subscribed!
Te informamos de que los datos de carácter personal que nos proporciones, serán tratados por AULA21 como responsable de esta web. La finalidad de la recogida de datos es para poder contactarte y para enviarle nuestras publicaciones y promociones de productos y/o servicios. Destinatarios: los Datos que nos facilites estarán ubicados en los servidores de Webempresa. Podrás ejercer en cualquier momento tus derechos de rectificación, limitación, supresión y acceso de datos.













