Si llevas un tiempo trasteando con PLCs seguro que te ha pasado: entras en un proyecto, ves un bloque que se llama PID_Compact, tiene tres letras raras en la ficha técnica (P, I, D) y un montón de parámetros con nombres en inglés, y decides que «eso ya lo miro otro día». Pues hoy es ese día. Vamos a desmontar el PID pieza a pieza, y al final vamos a montar uno de verdad en un S7-1200 con TIA Portal, paso a paso.
¿Qué problema resuelve un PID?
Imagínate que estás duchándote y quieres que el agua salga a una temperatura concreta. Abres el grifo, tocas el agua, está fría, giras la maneta hacia el agua caliente. Esperas un segundo, vuelves a tocar. Sigue fría, giras un poco más. De repente sale ardiendo, retrocedes un poco. Así, a base de prueba y corrección, acabas encontrando el punto justo.
Eso que estás haciendo tú con la mano es, ni más ni menos, control automático. Tienes una variable que quieres controlar (la temperatura del agua), un actuador que puedes mover (la maneta) y una diferencia entre lo que quieres y lo que tienes (el error). Un PID es simplemente un algoritmo que hace ese mismo trabajo, pero de forma automática, miles de veces por segundo si hace falta, y sin que tengas que estar tú ahí metiendo la mano bajo el grifo.
El objetivo de un PID siempre es el mismo: llevar una variable de proceso (temperatura, presión, nivel, velocidad, caudal…) hasta un valor deseado (el setpoint o consigna) y mantenerla ahí, aunque haya perturbaciones que la quieran desviar.
Las tres letras, una por una
P de Proporcional
Esta es la parte fácil de entender. El proporcional actúa según el tamaño del error: si estás muy lejos de la consigna SP, actúa fuerte; si estás cerca, actúa suave.
Volviendo a la ducha: si el agua está helada, giras la maneta un buen trozo de golpe. Si ya casi has acertado y solo te falta un pelín de calor, giras la maneta apenas un milímetro. Eso es proporcionalidad pura: la corrección es proporcional al error.
El problema del proporcional solo es que casi nunca llega a dejar el error en cero del todo. Suele quedarse una pizca corto, lo que se conoce como error de estado estacionario o «offset». Es como si, por mucho que gires la maneta, siempre te quedases un grado por debajo de lo que querías. Molesto, pero vivible. Para eso está la I.
I de Integral
La parte integral se dedica a mirar el error acumulado a lo largo del tiempo. Si el proporcional te deja cerca pero no del todo, la integral va sumando ese pequeño error minuto a minuto y sigue empujando hasta que el error desaparece completamente.
Siguiendo con la ducha: si llevas tres minutos duchándote un poco más fría de lo que te gusta, en algún momento dices «esto ya me está incomodando de verdad» y terminas de girar la maneta ese pelín que faltaba. Eso es la integral actuando: cuanto más tiempo persiste el error, más fuerte empuja para eliminarlo.
El problema de la integral es que, si te pasas de generosa con ella, tiende a hacer que el sistema se pase de frenada, oscile, y tarde en asentarse. Es la típica ducha en la que terminas dando bandazos entre frío y caliente porque la maneta reacciona con retraso a lo que hiciste hace un rato.
D de Derivativa
La parte derivativa mira la velocidad a la que está cambiando el error, no su tamaño ni su acumulado. Si el error está cambiando muy rápido, la derivativa frena el golpe de antemano, antes incluso de que el error sea grande.
En la ducha sería como si, en el momento en que notas que el agua está calentándose muy deprisa, giraras un poco la maneta hacia el frío antes de que llegue a quemarte, anticipándote. La derivativa amortigua los cambios bruscos y ayuda a evitar el sobreimpulso (pasarte de la consigna SP antes de estabilizarte).
No todos los procesos necesitan derivativa. De hecho, en procesos con mucho ruido en la medida (una señal de un sensor que vibra o parpadea), la derivativa puede volverse loca amplificando ese ruido, así que muchas veces se deja a cero o muy baja.
Los tres juntos: por qué se combinan
Un PID no es más que la suma de estas tres acciones trabajando a la vez sobre el mismo error: la P reacciona al tamaño del error ahora mismo, la I se encarga de que no quede ningún error residual con el tiempo, y la D anticipa y suaviza los cambios bruscos. El truco de configurar bien un PID (lo que se llama «sintonizar» o «tunear») consiste en encontrar el equilibrio entre las tres para que el sistema:
- Reaccione rápido cuando cambias la consigna o hay una perturbación.
- No se pase de frenada ni oscile de más (overshoot).
- Se asiente cuanto antes en el valor deseado, sin errores residuales.
Esto es un poco un arte además de una ciencia. Hay procesos rápidos (control de velocidad de un motor) donde el PID tiene que reaccionar en milisegundos, y procesos lentos (temperatura de un horno grande) donde tarda minutos en notarse el efecto de una corrección. Cada uno necesita parámetros distintos.
Manos a la obra: PID en un S7-1200 con TIA Portal
Vamos a montar un caso típico y muy agradecido para practicar: control de temperatura de una resistencia calefactora dentro de un horno pequeño o una cámara de proceso. Es el ejemplo de libro porque el proceso es lento (bueno para ver cómo evoluciona sin agobios) y porque seguramente tienes o puedes conseguir fácilmente una sonda PT100 y una resistencia para probarlo en el banco.
Lo que necesitamos en el hardware
- Un S7-1200 (vale cualquier CPU, con firmware relativamente moderno para tener el bloque PID_Compact V2).
- Una entrada analógica para leer la temperatura. Puede ser una sonda PT100 conectada a un módulo SM 1231 RTD, o un módulo de entrada analógica 4-20mA si usas un transmisor de temperatura.
- Una salida para actuar sobre la resistencia. Aquí tienes dos caminos habituales: una salida digital tipo relé o transistor gobernando un SSR (relé de estado sólido) en modo todo/nada modulado por PWM, o una salida analógica 0-10V/4-20mA si tu potencia se regula con un variador de potencia o un tiristor de disparo por fase.
Para este ejemplo vamos a usar la opción más habitual en calefacción: salida digital hacia un SSR, trabajando en modo PWM (el PID_Compact ya sabe generar esa señal de ancho de pulso él solito, no hace falta que se la programes tú aparte).
Paso 1: Insertar el bloque PID_Compact
En TIA Portal, dentro de tu bloque de organización cíclico de tiempo (normalmente creas un OB de alarma cíclica, por ejemplo OB30, con un tiempo de ciclo de 100ms si el proceso es térmico y lento, no hace falta ir más rápido), arrastras desde la carpeta Instrucciones > Tecnología > PID el bloque llamado PID_Compact. TIA te generará automáticamente un bloque de datos de instancia asociado.
Es importante meter el PID_Compact en un OB cíclico de tiempo fijo y no en el OB1 normal, porque el algoritmo PID necesita un tiempo de muestreo constante para calcular bien la derivada y la integral. Si el ciclo varía, el PID calcula mal.
Paso 2: Conectar entradas y salidas del bloque
Los parámetros mínimos que tienes que enlazar son:
- Input: aquí conectas el valor real de proceso ya escalado en unidades de ingeniería (por ejemplo, grados centígrados). Si tu entrada analógica te da un valor bruto de 0 a 27648, tendrás que escalarlo antes con un NORM_X y un SCALE_X, o directamente usar el parámetro Input_PER del PID_Compact, que admite el valor bruto del módulo analógico y lo escala él mismo dentro de la configuración del bloque.
- Setpoint: la consigna de temperatura que quieres alcanzar, por ejemplo 60.0 grados.
- Output o Output_PWM: si usas salida digital PWM, conectas Output_PWM directamente a la salida digital física que gobierna el SSR.
Paso 3: Configurar el bloque
Haces doble clic sobre el bloque PID_Compact en el editor de programa (o entras en su configuración desde el árbol del proyecto) y ahí tienes varias pestañas:
- Configuración básica: eliges el tipo de regulador (aquí, temperatura), y si el modo de salida es analógico, PWM o de dos posiciones (todo/nada).
- Valores de proceso: defines los límites físicos de tu variable, por ejemplo de 0 a 150 grados, para que el bloque sepa dentro de qué rango escalar y trabajar.
- Configuración avanzada: aquí puedes limitar la salida (por ejemplo, que nunca supere el 90% de potencia aunque el PID pida más, por seguridad), y definir la zona muerta o el comportamiento ante alarmas.
Paso 4: La sintonización automática (esto es lo que lo hace fácil)
Aquí está la parte que de verdad te ahorra dolores de cabeza. El PID_Compact de Siemens trae de serie un asistente de puesta en marcha (pestaña «Commissioning» o «Puesta en servicio» en la vista online) que hace la sintonización por ti, sin que tengas que calcular nada a mano .
El proceso, una vez tienes el CPU en marcha y online, es más o menos así:
- Entras en la vista de puesta en servicio del bloque PID_Compact (botón derecho sobre el bloque en el árbol del proyecto, o desde la pestaña de configuración, arriba a la derecha).
- Pones el PLC en RUN y activas el modo online.
- Lanzas la Pretuning (preajuste). El propio S7-1200 va a mover la salida de forma controlada (unos escalones de potencia) para observar cómo responde tu horno: cuánto tarda en reaccionar, cuánto se calienta, a qué velocidad. Con esos datos calcula unos parámetros P, I y D de partida razonables.
- Una vez terminado el preajuste, lanzas la Fine tuning (ajuste fino). Aquí el sistema provoca una pequeña oscilación controlada alrededor de la consigna para afinar los parámetros y minimizar el sobreimpulso.
- Al terminar, TIA Portal te muestra la gráfica de cómo ha ido evolucionando la temperatura durante la prueba, y puedes guardar esos parámetros calculados directamente en el bloque de datos de instancia.
Con esto, en la mayoría de procesos térmicos sencillos ya tienes un PID funcionando decentemente sin haber tocado una sola fórmula. Y si el resultado no te convence del todo (por ejemplo ves que se pasa un poco de temperatura antes de asentarse), puedes entrar manualmente en los parámetros Kp (ganancia proporcional), Ti (tiempo integral) y Td (tiempo derivativo) y retocar a mano, sabiendo ya qué hace cada uno gracias a lo que hemos visto antes.
Consejos Utiles
- Si tu proceso es de temperatura, casi nunca vas a necesitar mucha derivativa. Los procesos térmicos son lentos y suaves por naturaleza, así que muchas veces con PI (sin D) ya vas sobrado.
- Si usas salida PWM sobre un SSR, cuidado con el periodo de PWM que configures. Un periodo demasiado corto puede hacer trabajar al SSR de forma innecesariamente agresiva; para procesos térmicos, periodos de 1 a 5 segundos suelen ser razonables.
- Antes de fiarte del autotuning, asegúrate de que el sensor está bien calibrado y sin ruido. Un PID no puede corregir lo que no puede medir bien.
- Si el proceso tiene mucho retardo (por ejemplo, un horno grande donde el calor tarda minutos en repartirse), no te asustes si el preajuste tarda bastante rato en completarse: es justo lo que necesita para calcular bien.
- Guarda siempre una copia de los parámetros PID que te funcionen bien una vez sintonizados. Si algún día cambias de sonda o de resistencia, te va a servir como punto de partida para no empezar de cero.
Para cerrar
El PID no deja de ser, en el fondo, la versión automatizada de lo que hace tu mano cuando ajustas la ducha: reaccionar al error de ahora (P), no dejar residuos con el tiempo (I), y anticipar los cambios bruscos (D). Y lo mejor de trabajar con un S7-1200 y TIA Portal es que Siemens te ha dejado todo el trabajo duro de sintonización resuelto con un asistente que hace las pruebas por ti. Así que si hasta ahora le tenías respeto al bloque PID_Compact, ya no hay excusa: móntalo en el próximo proyecto de banco que tengas entre manos y juega con los parámetros hasta que le cojas el tacto.

