Académique Documents
Professionnel Documents
Culture Documents
PID_Compact V2
-1-
Descripción PID_Compact V2 (S7-1200, S7-1500)
Descripción PID_Compact V2
Descripción
La instrucción PID_Compact ofrece un regulador PID con optimización integrada para ac-
tuadores de acción proporcional.
Se dispone de los modos de operación siguientes:
• Inactivo
• Optimización inicial
• Optimización fina
• Modo automático
• Modo manual
• Valor de salida sustitutivo con monitorización de errores
Los modos de operación se describen detalladamente en el parámetro State.
Algoritmo PID
PID_Compact es un regulador PIDT1 con Anti-Windup y ponderación de las acciones P y
D. El algoritmo PID funciona de acuerdo con la siguiente fórmula:
Símbolo Descripción
y Valor de salida del algoritmo PID
Kp Ganancia proporcional
s Operador laplaciano
b Ponderación de la acción P
w Consigna
x Valor real
TI Tiempo de integración
TD Tiempo derivativo
Coeficiente para el retardo de la acción derivada (retardo de la acción
a derivada T1 = a × TD)
c Ponderación de la acción D
-1-
Descripción PID_Compact V2 (S7-1200, S7-1500)
Llamada
PID_Compact se llama en una base de tiempo constante de un OB de alarma cíclica.
Si efectúa una llamada de PID_Compact como DB multiinstancia, no se creará ningún ob-
jeto tecnológico. No dispondrá de interfaz de parametrización y puesta en servicio. Los
-2-
Descripción PID_Compact V2 (S7-1200, S7-1500)
Cargar en dispositivo
Los valores actuales de variables remanentes solo se actualizan si se carga PID_Compact
por completo.
Cargar objetos tecnológicos en el dispositivo
Arranque
Al arrancar la CPU, PID_Compact se inicia en el modo guardado en el parámetro de entra-
da/salida Mode. Para cambiar al modo de operación "Inactivo" durante el arranque, ajuste
RunModeByStartup = FALSE.
-3-
Funcionamiento PID_Compact V2 (S7-1200, S7-1500)
Funcionamiento PID_Compact V2
Limitar consigna
En las variables Config.SetpointUpperLimit y Config.SetpointLowerLimit es posible definir
un límite superior y uno inferior para la consigna. PID_Compact limita la consigna automá-
ticamente a los límites del valor real. Es posible limitar la consigna a un rango más peque-
ño. PID_Compact verifica si dicho rango está dentro de los límites del valor real. Si la con-
signa está fuera de estos límites, se utilizan los límites superior e inferior como consigna y
el parámetro de salida SetpointLimit_H o SetpointLimit_L adopta el valor TRUE.
La consigna se limita en todos los modos de operación.
Nota
Uso con dos o más actuadores
PID_Compact no es adecuado para el uso con dos o más actuadores (p. ej., en aplica-
ciones de calefacción/refrigeración), pues los actuadores diferentes necesitan también
parámetros PID diferentes para conseguir un buen comportamiento de regulación. Para
aplicaciones con dos actuadores de acción contrapuesta, utilice PID_Temp.
-1-
Funcionamiento PID_Compact V2 (S7-1200, S7-1500)
Sentido de regulación
Por lo general, un aumento del valor de salida debe lograr un aumento del valor real. En
este caso, se habla de un sentido de regulación normal. Para refrigeración o para las regu-
laciones de desagües puede ser necesario invertir el sentido de regulación. PID_Compact
no funciona con ganancia proporcional negativa. Si InvertControl = TRUE, un error de reg-
ulación ascendente provocará una reducción del valor de salida. El sentido de regulación
se tiene en cuenta también durante la optimización inicial y la optimización fina.
-2-
Parámetros de entrada PID_Compact V2 (S7-1200, S7-1500)
-1-
Parámetros de entrada PID_Compact V2 (S7-1200, S7-1500)
-2-
Parámetros de salida PID_Compact V2 (S7-1200, S7-1500)
-1-
Parámetros de salida PID_Compact V2 (S7-1200, S7-1500)
-2-
Parámetros de entrada/salida PID_Compact V2 (S7-1200, S7-1500)
Consulte también
Parámetros State y Mode V2
-1-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
No se deben modificar las variables que no aparecen listadas. Estas solo se utilizan inter-
namente.
-1-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-2-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-3-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-4-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-5-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-6-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-7-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-8-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
-9-
Variables estáticas de PID_Compact V2 (S7-1200, S7-1500)
Nota
Modifique las variables que aparecen aquí en el modo de operación "Inactivo" para evi-
tar un comportamiento erróneo del regulador PID.
Consulte también
Variable ActivateRecoverMode V2
Variable Warning V2
Cargar objetos tecnológicos en el dispositivo
- 10 -
Modificaciones de la interfaz PID_Compact V2 (S7-1200, S7-1500)
sb_GetCycleTime CycleTime.StartEstimation
sb_EnCyclEstimation CycleTime.EnEstimation
sb_EnCyclMonitoring CycleTime.EnMonitoring
sb_RunModeByStartup RunModeByStartup
si_Unit PhysicalUnit
si_Type PhysicalQuantity
sd_Warning Warning
sBackUp.r_Gain CtrlParamsBackUp.Gain
sBackUp.r_Ti CtrlParamsBackUp.Ti
sBackUp.r_Td CtrlParamsBackUp.Td
sBackUp.r_A CtrlParamsBackUp.TdFiltRatio
sBackUp.r_B CtrlParamsBackUp.PWeighting
sBackUp.r_C CtrlParamsBackUp.DWeighting
sBackUp.r_Cycle CtrlParamsBackUp.Cycle
sPid_Calc.r_Cycle CycleTime.Value
-1-
Modificaciones de la interfaz PID_Compact V2 (S7-1200, S7-1500)
sPid_Calc.b_RunIn PIDSelfTune.TIR.RunIn
sPid_Calc.b_CalcParamSUT PIDSelfTune.SUT.CalculateParams
sPid_Calc.b_CalcParamTIR PIDSelfTune.TIR.CalculateParams
sPid_Calc.i_CtrlTypeSUT PIDSelfTune.SUT.TuneRule
sPid_Calc.i_CtrlTypeTIR PIDSelfTune.TIR.TuneRule
sPid_Calc.r_Progress Progress
sPid_Cmpt.r_Sp_Hlm Config.SetpointUpperLimit
sPid_Cmpt.r_Sp_Llm Config.SetpointLowerLimit
sPid_Cmpt.r_Pv_Norm_IN_1 Config.InputScaling.LowerPointIn
sPid_Cmpt.r_Pv_Norm_IN_2 Config.InputScaling.UpperPointIn
sPid_Cmpt.r_Pv_Norm_OUT_1 Config.InputScaling.LowerPointOut
sPid_Cmpt.r_Pv_Norm_OUT_2 Config.InputScaling.UpperPointOut
sPid_Cmpt.r_Lmn_Hlm Config.OutputUpperLimit
sPid_Cmpt.r_Lmn_Llm Config.OutputLowerLimit
sPid_Cmpt.b_Input_PER_On Config.InputPerOn
sPid_Cmpt.b_LoadBackUp LoadBackUp
sPid_Cmpt.b_InvCtrl Config.InvertControl
sPid_Cmpt.r_Lmn_Pwm_PPTm Config.MinimumOnTime
sPid_Cmpt.r_Lmn_Pwm_PBTm Config.MinimumOffTime
sPid_Cmpt.r_Pv_Hlm Config.InputUpperLimit
sPid_Cmpt.r_Pv_Llm Config.InputLowerLimit
sPid_Cmpt.r_Pv_HWrn Config.InputUpperWarning
sPid_Cmpt.r_Pv_LWrn Config.InputLowerWarning
sParamCalc.i_Event_SUT PIDSelfTune.SUT.State
sParamCalc.i_Event_TIR PIDSelfTune.TIR.State
sRet.i_Mode se ha suprimido. El modo de
sRet.i_Mode operación se cambia mediante Mode y
ModeActivate.
sRet.r_Ctrl_Gain Retain.CtrlParams.Gain
sRet.r_Ctrl_Ti Retain.CtrlParams.Ti
sRet.r_Ctrl_Td Retain.CtrlParams.Td
sRet.r_Ctrl_A Retain.CtrlParams.TdFiltRatio
sRet.r_Ctrl_B Retain.CtrlParams.PWeighting
sRet.r_Ctrl_C Retain.CtrlParams.DWeighting
sRet.r_Ctrl_Cycle Retain.CtrlParams.Cycle
-2-
Parámetros State y Mode V2 (S7-1200, S7-1500)
Inactivo
0 En el modo de operación "Inactivo" se emite siempre el valor de salida 0.0, in-
dependientemente de Config.OutputUpperLimit y Config.OutputLowerLimit. La
modulación del ancho de pulso está desactivada.
Optimización inicial
La optimización inicial determina el comportamiento del proceso a un escalón
del valor de salida y busca el punto de inflexión. Los parámetros PID óptimos
se calculan a partir de la pendiente máxima y el tiempo muerto del sistema
regulado. Para obtener los mejores parámetros PID, debe efectuarse una opti-
mización inicial y una optimización fina.
Requisitos para la optimización inicial:
• Modo de operación Inactivo (State = 0), Manual (State = 4) o Automático
(State = 3)
• ManualEnable = FALSE
• Reset = FALSE
1 • El valor real no debe aproximarse demasiado a la consigna.
|Setpoint - Input| > 0.3 * | Config.InputUpperLimit - Config.InputLowerLimit| y
|Setpoint - Input| > 0.5 * |Setpoint|
• La consigna y el valor real se encuentran dentro de los límites configurados.
Cuanto más estable es el valor real, con mayor facilidad y precisión se pue-
den calcular los parámetros PID. Un ruido del valor real es aceptable siempre
que la subida del valor real sea considerablemente mayor que el ruido.
La consigna se congela en la variable CurrentSetpoint. La optimización no se
cancela hasta que no se cumple:
• Setpoint > CurrentSetpoint + CancelTuningLevel
o bien,
• Setpoint < CurrentSetpoint - CancelTuningLevel
-1-
Parámetros State y Mode V2 (S7-1200, S7-1500)
Antes de volver a calcular los parámetros PID, se guarda una copia de seguri-
dad de estos y es posible reactivarlos con LoadBackUp.
Una vez realizada correctamente la optimización inicial, se pasa al modo auto-
mático; si la optimización inicial no se ha realizado correctamente, el cambio
del modo de operación depende de ActivateRecoverMode.
Se muestra la fase de la optimización inicial con PIDSelfTune.SUT.State.
Optimización fina
La optimización fina genera una oscilación constante y limitada del valor real.
A partir de la amplitud y frecuencia de esta oscilación se calculan de nuevo
los parámetros PID. Los parámetros PID existentes después de la optimiza-
ción fina muestran en su mayoría un comportamiento de guía y ante fallos
mucho mejor que los parámetros PID de la optimización inicial. Para obtener
los mejores parámetros PID, debe efectuarse una optimización inicial y una
optimización fina.
PID_Compact intenta generar automáticamente una oscilación que es mayor
que el ruido del valor real. La estabilidad del valor real ejerce tan solo una
mínima influencia sobre la optimización fina.
La consigna se congela en la variable CurrentSetpoint. La optimización no se
cancela hasta que no se cumple:
• Setpoint > CurrentSetpoint + CancelTuningLevel
o bien,
• Setpoint < CurrentSetpoint - CancelTuningLevel
Antes de volver a calcular los parámetros PID, se guarda una copia de seguri-
dad de estos y es posible reactivarlos con LoadBackUp.
Requisitos para la optimización fina:
• No se esperan perturbaciones.
2 • La consigna y el valor real se encuentran dentro de los límites configurados.
• ManualEnable = FALSE
• Reset = FALSE
• Modo de operación Automático (State = 3), Inactivo (State = 0) o Manual
(State = 4)
Al inicio, la optimización fina se desarrolla del modo siguiente:
• Modo automático (State = 3)
Si desea mejorar los parámetros PID existentes mediante optimización, ini-
cie la optimización fina desde el modo automático.
PID_Compact regula con los parámetros PID existentes hasta que el lazo
de regulación es estacionario y se cumplen las condiciones para la optimi-
zación fina. Sólo entonces comienza la optimización fina.
• Modo Inactivo (State = 0) o Manual (State = 4)
Si se cumplen las condiciones para optimización inicial, ésta se inicia. Con
los parámetros PID calculados, la regulación se realiza hasta que el lazo de
regulación es estacionario y se han cumplido las condiciones para una opti-
mización fina.
Si el valor real para una optimización inicial se encuentra ya muy cerca de
la consigna o si PIDSelfTune.TIR.RunIn = TRUE, se intenta alcanzar la con-
signa con el valor de salida máximo o mínimo. lo que puede ocasionar una
sobreoscilación muy alta.
-2-
Parámetros State y Mode V2 (S7-1200, S7-1500)
Comportamiento ENO
Si State = 0, entonces ENO = FALSE.
Si State ≠ 0, entonces ENO = TRUE.
-3-
Parámetros State y Mode V2 (S7-1200, S7-1500)
0 4 4 Ajustar Mode = 1
1 1 4 Ajustar ModeActivate = TRUE
El valor de State se guarda en Mode
1 4 1
Se inicia la optimización inicial
n 4 1 Optimización inicial correcta
n 3 3 Se inicia el modo automático
En caso de error, PID_Compact cambia automáticamente el modo de operación. La si-
guiente tabla muestra cómo se modifican Mode y State durante una optimización inicial in-
correcta.
0 4 4 Ajustar Mode = 1
1 1 4 Ajustar ModeActivate = TRUE
El valor de State se guarda en Mode
1 4 1
Se inicia la optimización inicial
n 4 1 La optimización inicial se ha cancelado
n 4 4 Se inicia el modo manual
Si ActivateRecoverMode = TRUE, se activa el modo guardado en Mode. Al iniciar la opti-
mización inicial o fina, PID_Compact ha guardado el valor de State en el parámetro de en-
trada/salida Mode. Por lo tanto, PID_Compact cambia al modo desde el que se inició la
optimización.
Si ActivateRecoverMode = FALSE, se cambia al modo de operación "Inactivo".
Consulte también
Parámetros de salida PID_Compact V2
-4-
Parámetro ErrorBits V2 (S7-1200, S7-1500)
Parámetro ErrorBits V2
Si hay varios errores presentes a la vez, los valores del ErrorBits se muestran sumados
binariamente. Si se muestra, p. ej., ErrorBits = 0003h, significa que están presentes simul-
táneamente los errores 0001h y 0002h.
PID_Compact utiliza en modo manual ManualValue como valor de salida. La excepción es
Errorbits = 10000h.
ErrorBits Descripción
(DW#16#...)
-1-
Parámetro ErrorBits V2 (S7-1200, S7-1500)
-2-
Parámetro ErrorBits V2 (S7-1200, S7-1500)
-3-
Variable ActivateRecoverMode V2 (S7-1200, S7-1500)
Variable ActivateRecoverMode V2
Modo automático
ATENCIÓN
Su instalación puede sufrir daños.
Si se cumple ActivateRecoverMode = TRUE, incluso al rebasar los límites del valor real
PID_Compact permanece en el modo automático en caso de error. De este modo, su in-
stalación puede sufrir daños.
Configure un comportamiento en caso de error para su sistema regulado que proteja su
instalación de daños.
ActivateReco- Descripción
verMode
-1-
Variable ActivateRecoverMode V2 (S7-1200, S7-1500)
ActivateReco- Descripción
verMode
Modo manual
En el modo manual, ActivateRecoverMode no tiene efecto.
-2-
Variable Warning V2 (S7-1200, S7-1500)
Variable Warning V2
Si hay varias advertencias presentes a la vez, los valores de la variable Warning se mues-
tran sumados en modo binario. Si se muestra p. ej. la advertencia 0003h, significa que es-
tán presentes simultáneamente las advertencias 0001h y 0002h.
Warning Descripción
(DW#16#....)
-1-
Variable IntegralResetMode V2 (S7-1200, S7-1500)
Variable IntegralResetMode V2
IntegralReset- Descripción
Mode
Filtrar
El valor de PIDCtrl.IntegralSum se preasigna de tal modo que la conmuta-
0 ción se realice sin discontinuidad, es decir, el "Modo automático" se inicia
partiendo del valor de salida = 0.0 (parámetro Output) y no se produce salto
del valor de salida, con independencia del error de regulación (consigna -
valor real).
Borrar
Se recomienda ajustar la ponderación de la acción P (Retain.CtrlPar-
ams.PWeighting) a 1.0 si se utiliza esta opción.
El valor de PIDCtrl.IntegralSum se borra. Si existe un error de regulación,
se produce un salto del valor de salida. La dirección del salto del valor de
salida depende de la ponderación configurada de la acción P (variable Re-
tain.CtrlParams.PWeighting) y del error de regulación:
• Ponderación de la acción P = 1.0:
El salto del valor de salida y el error de regulación tienen idéntico signo.
Ejemplo: si el valor real está por debajo de la consigna (error de regula-
ción positivo), el valor de salida salta a un valor positivo.
• Ponderación de la acción P < 1.0:
para errores de regulación grandes, el salto del valor de salida y el error
1 de regulación tienen idéntico signo.
Ejemplo: Si el valor real es muy inferior a la consigna (error de regulación
positivo), el valor de salida salta a un valor positivo.
Para errores de regulación pequeños, el salto del valor de salida y el er-
ror de regulación tienen distinto signo.
Ejemplo: Si el valor real es ligeramente inferior a la consigna (error de
regulación positivo), el valor de salida salta a un valor negativo. Normal-
mente esto no es deseable, pues da lugar a un aumento provisional del
error de regulación.
Cuanto menor esté configurada la ponderación de la acción P, mayor
debe ser el error de regulación, a fin de que el salto del valor de salida
conserve el signo.
Se recomienda ajustar la ponderación de la acción P (Retain.CtrlPar-
ams.PWeighting) a 1.0 si se utiliza esta opción. En caso contrario, esto po-
dría provocar el comportamiento descrito no deseado en caso de errores
de regulación pequeños. Alternativamente, también puede utilizar Integra-
-1-
Variable IntegralResetMode V2 (S7-1200, S7-1500)
lResetMode = 4. Esta opción garantiza que el signo del salto del valor de
salida y del error de regulación sea idéntico con independencia de la pon-
deración configurada de la acción P y del error de regulación.
Mantener
2 El valor de PIDCtrl.IntegralSum no se modifica. Mediante el programa de
usuario se puede especificar un nuevo valor.
Preasignar
3 El valor de PIDCtrl.IntegralSum se preasigna automáticamente como si en
el último ciclo hubiese sido Output = OverwriteInitialOutputValue.
Como el cambio de consigna (solo para PID_Compact con versión ≥ 2.3)
El valor de PIDCtrl.IntegralSum se preasigna automáticamente de forma
que se obtenga un salto del valor de salida similar al de un regulador PI en
modo automático en caso de cambio de consigna del valor real actual a la
consigna actual.
4
Si existe un error de regulación, se produce un salto del valor de salida. El
salto del valor de salida y el error de regulación tienen idéntico signo.
Ejemplo: si el valor real está por debajo de la consigna (error de regulación
positivo), el valor de salida salta a un valor positivo. Esto es independiente
de la ponderación configurada de la acción P y del error de regulación.
Si se asigna a IntegralResetMode un valor fuera del rango válido, PID_Compact se com-
portará como con la preasignación de IntegralResetMode:
• PID_Compact hasta V2.2: IntegralResetMode = 1
• PID_Compact a partir de V2.3: IntegralResetMode = 4
Todas las afirmaciones anteriores sobre el signo del salto del valor de salida suponen un
sentido de regulación normal (variable Config.InvertControl = FALSE). En caso de sentido
de regulación invertido (Config.InvertControl = TRUE), se obtiene un signo invertido del
salto del valor de salida.
-2-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
-1-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
Objeto tecnológico
El objeto tecnológico se puede configurar a través de las propiedades de la instrucción
"PID_Compact" o a través de la ruta Objeto tecnológico > Configuración. En el ejemplo
son importantes el tipo de regulación y los parámetros de entrada y salida. A través del
tipo de regulación se determina una preselección para la unidad del valor que se regula.
En este ejemplo se utiliza como tipo de regulación "Temperatura" con la unidad "°C". Los
parámetros de "PID_Compact" ya están interconectados con variables globales. En con-
secuencia, es suficiente indicar el uso de los parámetros Input y Output.
-2-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
Nota
Alternativa a iniciar PID_Compact
Como alternativa, PID_Compact se puede poner en modo automático en el área
"Estado online del regulador" con el botón "Detener PID_Compact" / "Iniciar
PID_Compact" sin una optimización inicial. De ese modo el regulador utiliza por de-
fecto valores para los parámetros PID y muestra un comportamiento de regulación
peor para la aplicación en cuestión.
-3-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
Instrucción "PID_Compact"
En el parámetro Setpoint ("setpoint") se preasigna el valor de consigna para la tempera-
tura que se regula. Si la instrucción "PID_Compact" se ha iniciado a través del objeto tec-
nológico, se inicia la regulación. La instrucción "PID_Compact" emite un valor manipulado
en el parámetro de salida Output ("outputValue"). A través del parámetro de entrada Input
("inputValue") se transmite a la instrucción "PID_Compact" el valor real de la temperatura.
Dependiendo de la evolución de la diferencia entre la consigna ("setpoint") y el valor real
("inputValue"), la instrucción "PID_Compact" adapta el valor manipulado ("outputValue").
Este proceso se repite de forma que el valor real ("inputValue") se aproxime a la consigna
("setpoint") a través del valor manipulado ("outputValue").
En el parámetro de salida State ("state") se muestra el modo de operación actual de la in-
strucción "PID_Compact". Tras una optimización inicial (el valor de "state" es "1"),
PID_Compact conmuta al modo automático (el valor es "3").
El parámetro de salida Error ("error") muestra actualmente que no hay ningún error. En ca-
so de error, el parámetro de salida ErrorBits ("errorBits") proporciona información sobre el
tipo de error. Si se produce un error, este puede acusarse con el botón "ErrorAck" en el
área Estado de optimización del objeto tecnológico.
-4-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
Bloque "SLI_PROC_C"
El bloque "SLI_PROC_C" simula el valor real ("inputValue") de la temperatura creciente de
una instalación. El bloque "SLI_PROC_C" recibe el valor manipulado del regulador ("out-
putValue") y simula el comportamiento de temperatura del proceso regulado. Esta temper-
atura se incorpora al regulador como valor real ("inputValue").
Un cambio de los valores de la variable "resetAll" (del parámetro comRst) tiene las si-
guientes consecuencias:
-5-
Programa de ejemplo para PID_Compact (S7-1200, S7-1500)
Código de programa
Encontrará más información sobre el código de programa del ejemplo anterior bajo la pala-
bra clave "Sample Library for Instructions".
-6-