Para solucionar el problema cuando un bloque de función de control PID (como PID_Compact o PID_Temp) en TIA Portal no procesa la variable de proceso y mantiene el código de estado State = 0 (Inactivo / Inactive), debe cambiar el modo de operación del controlador a modo automático. Si el ajuste de parámetros desde el panel de puesta en marcha no se completa o si el bucle de control no ha finalizado el ajuste automático (Tuning), el bloque permanece inactivo por defecto; para forzar el modo automático desde el programa de usuario, escriba el valor 3 en la variable de modo (sRet.i_Mode o Mode) e inicie una transición en la entrada de activación (ModeActivate).
Tabla de contenido
- Causa técnica: por qué el controlador PID permanece en estado inactivo (State = 0)
- Requisitos previos
- Método 1: Activación del modo automático en el programa de usuario mediante asignación de variables
- Método 2: Puesta en marcha y optimización mediante el panel de control PID de TIA Portal
- Tabla comparativa de métodos
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes para ingenieros
- Artículos relacionados
- Etiquetas relacionadas
Causa técnica: por qué el controlador PID permanece en estado inactivo (State = 0)
En las CPU SIMATIC S7-1200 y S7-1500 dentro de TIA Portal, las instrucciones de regulación (como PID_Compact o PID_Temp) utilizan una máquina de estados interna registrada en su bloque de datos de instancia (DB). El parámetro de salida State indica el modo de operación activo en cada ciclo de ejecución:
State = 0: Inactivo (Inactive). La salida del regulador se congela o conmuta a cero y no se calcula la acción de control (P, I, D).State = 1: Optimización inicial (Pretuning).State = 2: Optimización fina (Finetuning).State = 3: Modo automático (Automatic mode). El controlador calcula activamente el valor de salida en función del error de consigna.State = 4: Modo manual (Manual mode).
Cuando se llama a una instrucción PID dentro de un bloque de interrupción cíclica (por ejemplo, OB30 con un tiempo de ciclo de 1 s), la CPU inicializa la estructura de datos en estado inactivo (State = 0). Si el bucle se prueba en un entorno simulado o en un banco de pruebas sin una planta térmica real conectada, la función de ajuste automático no puede completar el cálculo del tiempo de integración y de la ganancia, impidiendo que el bloque conmute por sí solo a modo automático. Si el usuario no fuerza la variable interna de modo (sRet.i_Mode o la entrada Mode) a la posición 3 con un pulso en ModeActivate, la variable de salida permanece en cero.
Requisitos previos
- Software de ingeniería TIA Portal (STEP 7 Basic o Professional).
- Controlador SIMATIC S7-1200 o S7-1500 configurado en el proyecto.
- Bloque de función PID (
PID_CompactoPID_Temp) insertado en la lógica y llamado desde un bloque de organización de interrupción cíclica (por ejemplo,OB30de 1000 ms). - Asignación correcta de los parámetros de proceso: entrada analógica o escalar en
Input/Input_PER, consigna enSetpointy variable manipulada enOutput/Output_PER/Output_PWM.
Método 1: Activación del modo automático en el programa de usuario mediante asignación de variables
Se utiliza mejor cuando: Se requiere iniciar el regulador PID directamente en modo automático sin depender de la ejecución previa de la sintonización automática, o cuando se realizan pruebas en seco (dry tests) con simuladores de proceso.
Procedimiento
- Abra el editor de bloques del proyecto en TIA Portal y localice la llamada al bloque PID dentro del bloque de interrupción cíclica (
OB30). - Abra la estructura del bloque de datos de instancia (
DB) del controlador PID en la vista de detalle de variables. -
Identifique la variable de estructura que gobierna el modo de operación de la instrucción:
- Para versiones de tecnología en TIA Portal que utilizan variables internas de retención:
DB_PID.sRet.i_Mode - Para versiones que exponen la interfaz de mando directa: parámetro de entrada
Modey flanco de activación enModeActivate.
4. Programe un segmento en lenguaje LAD/FBD/SCL para escribir el valor entero3en la variable de modo durante el arranque del controlador o mediante un flanco de inicialización:
- Para versiones de tecnología en TIA Portal que utilizan variables internas de retención:
Plaintext
// Ejemplo de asignación directa en código SCL:
"DB_PID".sRet.i_Mode := 3; // Asigna el modo 3 (Modo Automático)
"DB_PID".Mode := 3; // Asigna la consigna de modo automático
"DB_PID".ModeActivate := TRUE; // Genera el flanco de conmutación de modo
- En esquemas de contactos (LAD), utilice una instrucción de movimiento (
MOVE) para transferir el entero3hacia el parámetroModeo la variablesRet.i_Mode, seguido de un pulso de un ciclo en la entradaModeActivate. - Compile el proyecto de programa y descárguelo en la CPU SIMATIC S7.
Plaintext
Estructura de conmutación de modo en LAD:
Flanco_Inicio ┌──────────┐
───┤P├────────────────────┤ MOVE │
│ IN: 3 │
│ OUT: Mode│
└──────────┘
Flanco_Inicio ModeActivate
───┤P├───────────────────────────────────────────────────( )──
Resultado esperado: La máquina de estados interna del bloque PID evalúa la solicitud de cambio de modo, conmuta la salida de estado State del valor 0 al valor 3 y comienza a ajustar la variable manipulada (Output).
Verificación: Monitoree en línea el bloque de datos de instancia. Compruebe que la variable de salida State reporte el valor 3 y que la señal de salida reaccione ante las desviaciones entre Setpoint e Input.
Precaución: Al forzar el funcionamiento en modo automático sin haber sintonizado previamente el lazo, el bloque utilizará los parámetros PID por defecto de fábrica (Kp, Ti, Td). Verifique que estos valores no generen oscilaciones peligrosas en los actuadores de la planta.
Método 2: Puesta en marcha y optimización mediante el panel de control PID de TIA Portal
Se utiliza mejor cuando: El bucle de control está conectado a un proceso físico real (como un horno, intercambiador de calor o tanque térmico) y se requiere obtener la ganancia y los tiempos de integración óptimos mediante autoajuste.
Procedimiento
- En el árbol del proyecto de TIA Portal, despliegue la carpeta del controlador y acceda a Objetos de tecnología (Technology Objects).
- Abra el objeto de tecnología correspondiente al regulador PID (por ejemplo,
PID_Compact_1) y haga doble clic en Puesta en marcha (Commissioning). - Conéctese en línea con el controlador presione el botón Establecer conexión en línea.
- En el panel de control de la ventana de puesta en marcha, observe la gráfica de tendencia en tiempo real (Sampling plot).
-
En el menú desplegable de tipo de optimización, seleccione una de las dos opciones disponibles:
- Optimización inicial (Pretuning): Recomendada cuando el proceso se encuentra en estado de reposo cerca de la temperatura ambiente.
- Optimización fina (Finetuning): Recomendada para ajustar la respuesta con el sistema operando cerca del punto de consigna.
6. Haga clic en el botón Iniciar (Start).
7. Espere a que el algoritmo interno aplique los escalones de prueba en la salida y analice la curva de respuesta de la variable de proceso.
8. Una vez finalizada la secuencia de sintonización con éxito, el panel mostrará el mensaje de confirmación y conmutará automáticamente el controlador al modo de operaciónState = 3.
9. Haga clic en el botón Cargar parámetros PID calculados (Upload PID parameters) para transferir los valores de Kp, Ti y Td a la memoria de retención del proyecto de ingeniería.
Resultado esperado: El bucle de regulación completa el cálculo de estabilidad y pasa de la fase de sintonización al modo automático continuo (State = 3).
Limitación: Si durante la optimización inicial la temperatura no varía dentro de la ventana de tiempo esperada (como ocurre durante pruebas sin carga térmica real), la rutina abortará con un error de tiempo de espera y devolverá el estado del bloque a State = 0.
Tabla comparativa de métodos
CriterioMétodo 1: Asignación por código de usuarioMétodo 2: Panel de puesta en marcha TIA PortalRequisito de planta realNo requiere carga térmica (funciona en simulación / pruebas en seco)Obligatorio (requiere respuesta dinámica real de la variable de proceso)Parámetros de control (Kp,Ti,Td)Utiliza valores estáticos prefijados o valores por defectoCalcula automáticamente los parámetros óptimos del procesoPunto de falla comúnOlvidar activar la entrada ModeActivate tras escribir en ModeAborto de sintonización por falta de variación en la variable InputEstado final del parámetro StateConmuta directamente a 3 (Modo Automático)Conmuta a 3 tras completar las fases 1 (Pretuning) o 2 (Finetuning)
Verificación
El procedimiento de activación del controlador PID en TIA Portal se considera exitoso cuando:
- La variable de salida de estado del bloque (
State) registra continuamente el valor entero3. - Las llamadas dentro del bloque de interrupción cíclica (
OB30) se ejecutan a intervalos regulares respetando el parámetro de tiempo de muestreo (sWM.t_SampleTimeo equivalente configurado en 1 s). - Al introducir un cambio en el punto de consigna (
Setpoint), la salida del regulador (OutputoOutput_PER) modifica su valor proporcionalmente para corregir la desviación de la variable de proceso (Input).
Limitaciones y precauciones operativas
- Coincidencia de tiempos de muestreo: La propiedad de tiempo de ciclo declarada en la configuración del bloque PID debe coincidir exactamente con el tiempo de exploración asignado al bloque de organización de interrupción cíclica (
OB30). Si el OB se ejecuta cada 1000 ms, el tiempo de muestreo del PID debe fijarse en 1,0 s. Una discrepancia en estos valores invalida los cálculos integrales y derivativos del regulador. - Retención de modo tras un reinicio de CPU: Si no se programa una lógica explícita de arranque en el bloque de organización de inicio (
OB100), la CPU puede restaurar el bloque PID al modo inactivo (State = 0) tras una transición deSTOPaRUNo un reinicio por falla de alimentación.
Preguntas frecuentes para ingenieros
¿Por qué la sintonización automática del bloque PID en TIA Portal falla durante una prueba de escritorio sin proceso real?
Las rutinas de optimización inicial (Pretuning) y optimización fina (Finetuning) aplican un cambio en la salida y supervisan la respuesta de la entrada en un intervalo de tiempo delimitado. En un entorno de prueba en seco sin sensor térmico ni proceso real conectado, la variable de entrada no experimenta cambios de temperatura, lo que provoca que el algoritmo interno detecte una falla de respuesta de la planta, cancele el ajuste automático y devuelva el parámetro State al valor 0.
¿Cuál es la diferencia entre utilizar la entrada Input y la entrada Input_PER en los bloques PID de Siemens?
La entrada Input acepta valores de proceso ya escalados en formato de punto flotante de 32 bits (REAL, por ejemplo 25.5 ∘C). La entrada Input_PER se utiliza para conectar directamente la palabra de entrada analógica de periferia en formato entero (INT, por ejemplo IW64 con rango de 0 a 27648 unidades), permitiendo que el bloque realice el escalado interno según los límites superior e inferior configurados en el objeto de tecnología.
¿Cómo se puede forzar el modo manual en la instrucción PID desde el código?
Para cambiar el regulador a modo manual desde el programa de usuario, escriba el valor entero 4 en la variable o entrada de modo (Mode), asigne el valor de salida deseado en el parámetro ManualValue y envíe un flanco ascendente en la señal ModeActivate. El bloque actualizará el parámetro State al valor 4 y transferirá el valor manual directamente a la salida.
Artículos relacionados
- Cómo parametrizar y sintonizar el bloque PID_Compact en TIA Portal
- Configuración de bloques de interrupción cíclica OB30 para control en tiempo real
- Escalado de señales analógicas de temperatura en autómatas SIMATIC S7-1200 y S7-1500
Etiquetas relacionadas
- TIA Portal
- PID_Compact
- PID_Temp
- SIMATIC S7-1200
- SIMATIC S7-1500
- Control PID
- OB30 Interrupción Cíclica
Code: C316