Cómo evitar la pérdida de parámetros en PID_Compact al cargar en S7-1200

Para evitar que un bloque de control PID_Compact en un autómata SIMATIC S7-1200 pierda sus parámetros de sintonización al descargar el programa desde TIA Portal, es necesario definir los valores del regulador en los valores de inicio (Start values) de la estructura sRet dentro de su bloque de datos de instancia (DB). Adicionalmente, el bloque se puede inicializar directamente en modo automático asignando el valor 3 al parámetro i_Mode (o Mode según la versión de TIA Portal) y ejecutando una transición de modo mediante un flanco en el parámetro ModeActivate.

Tabla de contenido

Causa técnica: por qué el bloque PID_Compact pierde la optimización

Durante el proceso de optimización inicial (Pre-tuning / Fine tuning), la instrucción PID_Compact calcula e introduce los coeficientes ganancia proporcional (P), tiempo de integración (I) y tiempo de derivación (D) en los valores actuales (Actual values) de su bloque de datos de instancia.

Cuando un técnico o ingeniero realiza modificaciones en el programa de la CPU (por ejemplo, en TIA Portal V10.5 o V11) y descarga el proyecto completo hacia el PLC S7-1200, la memoria del bloque de datos se reinicializa. Si los valores de inicio (Start values) de la estructura del DB conservan los valores predeterminados de fábrica (0.0 o parámetros no sintonizados), los valores actuales calculados durante la optimización se sobrescriben. Como consecuencia, el lazo de control pierde la configuración y exige una nueva secuencia de optimización para volver a operar en modo automático.

Requisitos previos

  • Controlador: PLC Siemens SIMATIC S7-1200 (por ejemplo, CPU 1214C DC/DC/DC).
  • Software de ingeniería: TIA Portal (STEP 7 Basic o Professional V10.5, V11 o superior).
  • Instrucción: Lazo de control de proceso configurado con la función PID_Compact.
  • Datos del proceso: Parámetros PID conocidos u obtenidos mediante una optimización previa válida.

Método 1: Ajuste de valores de inicio en la estructura sRet del DB de instancia

Se utiliza mejor cuando: Se conocen los parámetros de sintonización (P,I,D) del lazo de control (por ejemplo, control de nivel en un tanque) y se desea que persistan permanentemente ante cualquier descarga de bloques hacia la CPU.

Procedimiento

  1. Abra el proyecto en TIA Portal y navegue en el árbol del proyecto hacia la carpeta del programa de la CPU.
  2. Localice y abra el bloque de datos de instancia (DB) asignado a la instrucción PID_Compact.
  3. Despliegue la estructura interna de variables etiquetada como sRet.
  4. Ubique las variables correspondientes a la sintonización del regulador:

    • sRet.r_Gain (Ganancia proporcional / Kp​)
    • sRet.r_Ti (Tiempo de integración / Ti​ en segundos)
    • sRet.r_Td (Tiempo de derivación / Td​ en segundos)
      5. Introduzca los valores obtenidos en la optimización previa directamente en la columna Valor de inicio (Start value) de cada variable.
      6. Guarde y compile el bloque de datos de instancia.
      7. Descargue el proyecto modificado a la CPU S7-1200.

Resultado esperado: Al reiniciar el PLC o descargar bloques, el DB de instancia cargará los valores definidos en la columna de inicio hacia la estructura de trabajo, conservando la sintonización sin requerir una nueva optimización.

Método 2: Resguardo y escritura de parámetros mediante READ_DBL y WRIT_DBL

Se utiliza mejor cuando: Los parámetros de sintonización se optimizan dinámicamente en campo y se requiere guardarlos automáticamente en la memoria de carga (Load Memory / Flash) de la CPU sin conectarse con el software TIA Portal.

Procedimiento

  1. Cree un bloque de datos global (DB_PID_Backup) con una estructura equivalente a los parámetros de sintonización de sRet.
  2. Para guardar los parámetros optimizados desde la memoria de trabajo (RAM) hacia la memoria de carga (Flash):

    • Llame a la función de sistema WRIT_DBL en el programa de usuario.
    • Asigne la estructura sRet del DB de instancia en el parámetro SRCBLK (origen).
    • Asigne el bloque de datos global almacenado en la memoria de carga en el parámetro DSTBLK (destino).
      3. Para restaurar los parámetros desde la memoria de carga hacia la memoria de trabajo tras una reinicialización:

    • Llame a la función de sistema READ_DBL.

    • Asigne el DB global de resguardo en SRCBLK y la estructura sRet del DB de instancia en DSTBLK.
      4. Acepte la ejecución de las funciones mediante una marca de activación o instrucción de control en el programa de la CPU.

Resultado esperado: La CPU lee y escribe los datos de sintonización entre la memoria de trabajo no volátil y la memoria de carga, protegiendo los coeficientes PID ante pérdidas de retentividad o transferencias de programa.

Inicialización directa en Modo Automático sin reoptimización

Para asegurar que el bloque de control entre en funcionamiento inmediatamente después de energizar la planta o descargar el programa, configure la secuencia de inicialización del PID_Compact:

  1. En el programa de usuario (por ejemplo, en el bloque de organización de arranque OB100 o en el primer ciclo del OB1), configure el valor del modo operativo:

    • Asigne el valor 3 al parámetro i_Mode (o Mode según la versión de la instrucción) del DB de instancia. El valor 3 corresponde al Modo Automático.
      2. Active la entrada de cambio de modo enviando un flanco ascendente (0→1) al parámetro ModeActivate (o mediante el bit de inicialización de la instrucción).
      3. Verifique que la variable de estado sRet.i_Mode o la salida de estado del bloque confirme la transición al valor 3.

Verificación

El procedimiento para la retención e inicialización del bloque PID_Compact se ha realizado correctamente cuando:

  • La CPU S7-1200 completa la descarga de bloques y pasa a modo RUN sin activar alarmas de error en el lazo de control.
  • Las variables de trabajo sRet.r_Gain, sRet.r_Ti y sRet.r_Td dentro del DB de instancia conservan valores distintos de cero o coincidentes con la sintonización guardada.
  • El bloque conmuta su estado de operación directamente a Modo Automático (i_Mode = 3) sin requerir la ejecución de los comandos de preoptimización o finotuning desde el panel de control de TIA Portal.

Limitaciones y precauciones operativas

  • Reinicialización completa del DB: Si se realiza una descarga con reinicialización completa del bloque de datos de instancia y la columna Start value conserva los valores de fábrica (0.0), el regulador PID perderá toda la sintonización previa.
  • Transición de modo requerida: Asignar únicamente el valor 3 a la variable i_Mode no cambia el estado del regulador si no se genera la señal de activación mediante flanco en ModeActivate.
  • Escribir en la memoria de carga: La ejecución de la instrucción WRIT_DBL escribe datos en la memoria Flash del S7-1200. No ejecute esta función cíclicamente en cada ciclo de Scan para evitar el desgaste prematuro de la memoria no volátil de la CPU.

Preguntas frecuentes

¿Por qué el bloque PID_Compact exige una nueva optimización tras cargar el programa si no modifiqué el OB del PID?

Porque al descargar cambios globales en el proyecto o estructurar nuevamente el programa, TIA Portal puede restablecer los datos de trabajo de los DB de instancia a sus valores de inicio (Start values). Si estos valores iniciales no fueron actualizados con los coeficientes sintonizados, el algoritmo detecta parámetros nulos e invalida el modo automático.

¿Se pueden respaldar los parámetros PID desde un panel HMI?

Sí. Los parámetros de la estructura sRet (r_Gain, r_Ti, r_Td) pueden vincularse a una receta o variables de proceso en un panel HMI. Al restaurar la receta desde la pantalla, el operador puede sobrescribir las variables del DB de instancia y reactivar el modo automático sin abrir TIA Portal.

¿Cuál es la diferencia entre el parámetro i_Mode = 3 y i_Mode = 4?

En la instrucción PID_Compact, el modo 3 representa la operación en Modo Automático (donde el bloque calcula la salida en función del Setpoint y la variable de proceso). El modo 4 corresponde al Modo Manual, en el cual la salida del regulador se fija directamente por la variable asignada a la consigna manual.

Artículos relacionados

Etiquetas relacionadas

Code: C316

6 respuestas