Control de modelo interno (IMC)

Esta información corresponde a los controladores
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 y ControlLogix 5590.
La instrucción Control de modelo interno (Internal Model Control, IMC) controla una sola variable del proceso mediante la manipulación de la salida de una sola variable de control. Este bloque de funciones ejecuta un algoritmo donde la señal de error real se compara con la de un retardo de primer orden interno más el modelo de tiempo muerto del proceso. El bloque de funciones IMC calcula la salida de la variable de control (CV) en el modo Automático según la desviación de PV-SP, el modelo interno y el ajuste.
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en el diagrama de escalera.
Bloque de funciones
IMC_FB_avail_v31
Texto estructurado
IMC(IMC_tag);
Operandos
Bloque de funciones
Operandos:
Tipo:
Formato
Descripción:
Etiqueta IMC
INTERNAL MODEL CONTROL
Estructura
Estructura IMC
Texto estructurado
Operandos:
Tipo:
Formato
Descripción:
Etiqueta IMC
INTERNAL MODEL CONTROL
Estructura
Estructura IMC
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
IMPORTANTE: Siempre que un bloque APC detecte un cambio en el Tiempo de delta (DeltaT), se realizará un ModelInit. Por esta razón, los bloques solo deben ejecutarse en uno de los TimingModes en los que DeltaT será constante.
  • TimingMode = 0 (Periódico) al ejecutar estos bloques de funciones en una Tarea periódica.
  • TimingMode = 1 (Sobremuestreo)
En cualquier caso, si el tiempo de la Tarea periódica o el OversampleDT se cambia dinámicamente, el bloque realizará un ModelInit.
No se recomienda la siguiente configuración de TimingMode debido a la fluctuación en DeltaT:
  • TimingMode = 0 (Periódico) al ejecutar estos bloques de funciones en una Tarea continua o de eventos.
  • TimingMode = 2 (RealTimeSample)
Estructura
Parámetros de entrada
Tipo de datos
Descripción
Valores válidos y predeterminados
EnableIn
BOOL
Habilita la entrada. Si es falso, el bloque de funciones no se ejecuta y las salidas no se actualizan.
Valor predeterminado = VERDADERO
PV
REAL
Entrada de variable de proceso escalada. Este valor se suele leer desde un módulo de entrada analógica.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
PVFault
BOOL
Indicador de estado incorrecto de PV. Si la PV se lee de una entrada analógica, entonces PVFault normalmente estará controlado por el estado de fallo de la entrada analógica.
Si PVFault es VERDADERO, indica un error en el módulo de entrada; se establece el bit correspondiente en Status.
Valor predeterminado = FALSO
FALSO = estado correcto
PVUEMax
REAL
Valor escalado máximo de PV. El valor de PV y SP que corresponde a una extensión del 100% de la Variable de proceso. Si PVEUMax ≤ PVEUMin, se establece el bit correspondiente en Status.
Válido = PVEUMin < PVEUMax ≤ punto flotante positivo máximo
Valor predeterminado = 100,0
PVUEMin
REAL
Valor escalado mínimo de PV. El valor de PV y SP que corresponde a una extensión del 0 % de la Variable de proceso. Si PVEUMax ≤ PVEUMin, se establece el bit correspondiente en Status.
Válido = punto flotante negativo máximo ≤ PVEUMin < PVEUMax
Valor predeterminado = 0,0
SPProg
REAL
Valor de programa de SP, escalado en unidades de PV. SP se establece en este valor cuando se está en el modo de control Programa.
Si el valor de SPProg o SPOper < SPLLimit o > SPHLimit, se establece el bit en Status y límite el valor utilizado para SP.
Válido = de SPLLimit a SPHLimit
Valor predeterminado = 0,0
SPOper
REAL
Valor de operador de SP, escalado en unidades de PV. SP se establece en este valor cuando está en Control de operador.
Si el valor de SPProg o SPOper < SPLLimit o > SPHLimit, se establece el bit en Status y límite el valor utilizado para SP.
Válido = de SPLLimit a SPHLimit
Valor predeterminado = 0,0
SPCascade
REAL
Valor de cascada de SP, escalado en unidades de PV. Si está en el modo CascadeRatio y UseRatio es FALSO, SP se establece en este valor; que normalmente será CVEU de un lazo primario. Si está en modo Cascada/Relación y UseRatio es VERDADERO, entonces SP se establece a este valor de veces de Ratio.
Si el valor de SPCascade < SPLLimit o > SPHLimit, se establece el bit en Status y limita el valor utilizado para SP.
Válido = de SPLLimit a SPHLimit
Valor predeterminado = 0,0
SPHLimit
REAL
Valor de límite alto de SP, escalado en unidades de PV.
Si SPHLimit < SPLLimit o SPHLimit > PVEUMax, se establece el bit en Status.
Válido = de SPLLimit a PVEUMax
Valor predeterminado = 100,0
SPLLimit
REAL
Valor de límite bajo de SP, escalado en unidades de PV.
Si SPLLimit < PVEUMin o SPHLimit < SPLLimit, se establece el bit en Status y limita SP utilizando el valor de SPLLimit.
Válido = de PVEUMin a SPHLimit
Valor predeterminado = 0,0
UseRatio
BOOL
Permite el control de relación permisivo. Se establece en VERDADERO para habilitar el control de relación en el modo Cascada/Relación.
Valor predeterminado = FALSO
RatioProg
REAL
Multiplicador de programa de Ratio, sin unidades (por ejemplo, escalar). Ratio y RatioOper se establecen en este valor cuando está en Control de programa.
Si RatioProg o RatioOper < RatioLLimit o > RatioHLimit, se establece el bit correspondiente en Status y limita el valor utilizado para Ratio.
Válido = de RatioLLimit a RatioHLimit
Valor predeterminado = 1,0
RatioOper
REAL
Multiplicador de operador de Ratio, sin unidades (por ejemplo, escalar). Ratio se establece en este valor cuando se está en Control de operador.
Si RatioProg o RatioOper < RatioLLimit o > RatioHLimit, se establece el bit correspondiente en Status y limita el valor utilizado para Ratio.
Válido = de RatioLLimit a RatioHLimit
Valor predeterminado = 1,0
RatioHLimit
REAL
Valor de límite alto de Ratio, sin unidades (por ejemplo, escalar). Limita el valor de Ratio obtenido a partir de RatioProg o RatioOper.
Si RatioLLimit < 0, se establece el bit en Status y limita el valor a cero. Si RatioHLimit < RatioLLimit, se establece el bit en Status y limita el Ratio utilizando el valor de RatioLLimit.
Válido = de RatioLLimit a punto flotante positivo máximo
Valor predeterminado = 1,0
RatioLLimit
REAL
Valor de límite bajo de Ratio, sin unidades (por ejemplo, escalar). Limita el valor de Ratio obtenido a partir de RatioProg o RatioOper.
Si RatioLLimit < 0, se establece el bit en Status y limita el valor a cero. Si RatioHLimit < RatioLLimit, se establece el bit en Status y limita el Ratio utilizando el valor de RatioLLimit.
Válido = de 0,0 a RatioHLimit
Valor predeterminado = 1,0
CVFault
BOOL
Indicador de estado incorrecto de variable de control. Si CVEU controla una salida analógica, entonces CVFault procede normalmente del estado de fallo de la salida analógica.
Si CVFault es VERDADERO, esto indica un error en el módulo de salida; se establece el bit correspondiente en Status.
Valor predeterminado = FALSO
FALSO = estado correcto
CVInitReq
BOOL
Solicitud de inicialización de CV. Mientras esté en VERDADERO, se establece CVEU al valor de CVInitValue. Esta señal se controlará normalmente por el estado En retención en el módulo de salida analógica controlado por CVEU o desde la salida InitPrimary de un lazo secundario IMC.
Valor predeterminado = FALSO
CVInitValue
REAL
Valor de inicialización de CVEU, escalado en unidades de CVEU. Cuando CVInitializing es VERDADERO se establece CVEU igual a CVInitValue y CV al valor de porcentaje correspondiente. CVInitValue procede normalmente de la retroalimentación de la salida analógica controlada por CVEU o del punto de ajuste de un lazo secundario. La inicialización del bloque de funciones está deshabilitada cuando CVFaulted o CVEUSpanInv es VERDADERO (estado incorrecto).
Válido = cualquier punto flotante
Valor predeterminado = 0,0
CVProg
REAL
Valor de CV en modo Programa-Manual. CV se establece en este valor cuando se está en Control de programa y en modo Manual.
Si el valor de CVProg o CVOper < 0 o > 100, o < CVLLimit o > CVHLimit cuando CVManLimiting es VERDADERO, se establece el bit de Status único y limita el valor utilizado para CV.
Válido = de 0,0 a 100,0
Valor predeterminado = 0,0
CVOper
REAL
Valor de CV en modo Operador-Manual. CV se establece en este valor cuando se está en Control de operador y en modo Manual. Si no está en el modo Operador-Manual, se establece CVOper al valor de CV al final de cada ejecución del bloque de funciones.
Si el valor de CVProg o CVOper < 0 o > 100, o < CVLLimit o > CVHLimit cuando CVManLimiting es VERDADERO, se establece el bit de Status único y limita el valor utilizado para CV.
Válido = de 0,0 a 100,0
Valor predeterminado = 0,0
CVOverrideValue
REAL
Valor de CV en modo Anular. CV establecido a este valor cuando está en modo Anular.
Este valor debe corresponder con una salida de estado seguro del lazo IMC. Si el valor de CVOverrideValue < 0 o > 100, se establece el bit de Status y limita el valor utilizado para CV.
Válido = de 0,0 a 100,0
Valor predeterminado = 0,0
CVTrackValue
REAL
Valor de seguimiento de CV Cuando CVTrackReq está habilitado y el bloque de funciones de IMC está en modo Manual, se ignorará el CVTrackValue y el modelo interno de IMC actualizará sus datos históricos con el valor CVOper o CVProg. Cuando CVTrackReq está habilitado y el bloque de funciones de IMC está en modo Automático, el modelo interno actualizará sus datos históricos basados en el valor de CVTrackValue. El CV en este caso podrá moverse como si el bloque de funciones de IMC todavía controlara el proceso. Esto es útil en los esquemas de selección de lazos múltiples en los que quiera que el bloque de funciones de IMC siga la salida de un algoritmo de control diferente, donde conectaría la salida del algoritmo de control con el CVTrackValue.
Válido = de 0,0 a 100,0
Valor predeterminado = 0,0
CVManLimiting
BOOL
Solicitud de limitación de CV en modo Manual. Si está en modo Manual y CVManLimiting es VERDADERO, la CV estará limitada por los valores de CVHLimit y CVLLimit.
Valor predeterminado = FALSO
CVEUMax
REAL
Valor máximo para CVEU. El valor de CVEU que corresponde al 100% de CV. Si CVEUMax = CVEUMin, se establece el bit en Status.
Válido = cualquier punto flotante
Valor predeterminado = 100,0
CVEUMin
REAL
Valor mínimo de CVEU. El valor de CVEU que corresponde al 0 % de CV. Si CVEUMax = CVEUMin, se establece el bit en Status.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
CVHLimit
REAL
Valor de límite alto de CV. Se utiliza para establecer la salida de CVHAlarm. También se utiliza para la limitación de CV para el modo Automático o Cascada/Relación, o el modo Manual si CVManLimiting es VERDADERO.
Si CVLLimit < 0, CVHLimit > 100 y CVHLimit < CVLLimit, se establece el bit en Status. Si CVHLimit < CVLLimit, limita CV utilizando el valor de CVLLimit.
Válido = CVLLimit < CVHLimit ≤ 100,0
Valor predeterminado = 100,0
CVLLimit
REAL
Valor de límite bajo de CV. Se utiliza para configurar la salida de CVLAlarm. También se utiliza para la limitación de CV para el modo Automático o Cascada/Relación, o el modo Manual si CVManLimiting es VERDADERO.
Si CVLLimit < 0, CVHLimit > 100 y CVHLimit < CVLLimit, se establece el bit en Status.
Si CVHLimit < CVLLimit, limita CV utilizando el valor de CVLLimit.
Válido = 0,0 ≤ CVLLimit < CVHLimit
Valor predeterminado = 0,0
CVROCPosLimit
REAL
Límite del índice de cambio en aumento de CV, en porcentaje por segundo.
La limitación del índice de cambio solo se utiliza para los modos Automático o Cascada/Relación o el modo Manual si CVManLimiting es VERDADERO.
El valor cero deshabilita el límite de CV de ROC.
Si el valor de CVROCPOSLimit < 0, se establece el bit en Status e deshabilite la limitación de ROC para CV.
Válido = de 0,0 a número de punto flotante positivo máximo
Valor predeterminado = 0,0
CVROCNegLimit
REAL
Límite del índice de cambio en descenso de CV, en porcentaje por segundo.
La limitación del índice de cambio solo se utiliza para los modos Automático o Cascada/Relación o el modo Manual si CVManLimiting es VERDADERO.
El valor cero deshabilita el límite de CV de ROC.
Si el valor de CVROCNegLimit < 0, se establece el bit en Status e deshabilite la limitación de ROC para CV.
Válido = de 0,0 a número de punto flotante positivo máximo
Valor predeterminado = 0,0
HandFB
REAL
Valor de CV de HandFeedback. CV se establece a este valor cuando está en modo Mano y HandFBFault es FALSO (estado correcto). Este valor provendría típicamente de la salida de una estación de mano/automática montada en el campo y se utiliza para generar una transferencia sin perturbaciones fuera del modo Mano
Si el valor de HandFB < 0 o > 100, se establece el bit de Status único y limita el valor utilizado para CV.
Válido = de 0,0 a 100,0
Valor predeterminado = 0,0
HandFBFault
BOOL
Indicador de estado incorrecto del valor de HandFB. Si el valor de HandFB se lee desde una entrada analógica, HandFBFault se controla típicamente mediante el estado del canal de entrada analógica.
Si HandFBFault es VERDADERO, indica un error en el módulo de entrada; se establece el bit en Status.
Valor predeterminado = FALSO
FALSO = estado correcto
WindupHIn
BOOL
Solicitud de windup alto. Si es VERDADERO, no se permitirá aumentar el valor de CV. Esta señal será normalmente la salida WindupHOut de un lazo secundario.
Valor predeterminado = FALSO
WinduplIn
BOOL
Solicitud de windup bajo. Si es VERDADERO, no se permitirá disminuir el valor de CV. Esta señal será normalmente la salida WindupLOut de un lazo secundario.
Valor predeterminado = FALSO
GainEUSpan
BOOL
Unidades de ModelGain en EU o como % de extensión.
Unidades de ModelGain de CV en EU o como % de extensión. Se establece para interpretar ModelGain como EU, se restablece para interpretar ModelGain como % de extensión.
Valor predeterminado = FALSO
VERDADERO = ganancia en EU
FALSO = ganancia en % de extensión
ProcessGainSign
BOOL
Solo se utiliza para ajuste automático. Signo de la ganancia de proceso (Delta PV/Delta CV).
Se establece para indicar una ganancia de proceso negativa (el aumento en la salida provoca una reducción en PV).
Restablecer para indicar una ganancia de proceso positiva (el aumento en la salida provoca un aumento en PV).
Valor predeterminado = FALSO
ProcessType
DINT
Selección de tipo de proceso (1 = De integración, 0 = De sin integración)
Valor predeterminado = 0
ModelGain
REAL
Parámetro de ganancia de modelo interno. Introduzca una ganancia positiva o negativa dependiendo de la dirección del proceso.
Válido = número de punto flotante negativo máximo −> número de punto flotante positivo máximo
Valor predeterminado = 0,0
ModelTC
REAL
Constante de tiempo de modelo interno en segundos.
Válido = de 0,0 a número de punto flotante positivo máximo
Valor predeterminado = 0,0
ModelDT
REAL
El tiempo muerto de modelo interno en segundos.
Válido = de 0,0 a número de punto flotante positivo máximo
Valor predeterminado = 0,0
RespTC
REAL
El parámetro de ajuste que determina la velocidad de la acción de la variable de control en segundos.
Válido = de 0,0 a número de punto flotante positivo máximo
Valor predeterminado = 0,0
PVTracking
BOOL
Solicitud de PV de seguimiento de SP. Se establece en VERDADERO para habilitar SP para realizar un seguimiento de PV. Se ignora cuando está en el modo Cascada/Relación o Automático.
Valor predeterminado = FALSO
CVTrackReq
BOOL
Solicitud de seguimiento de CV. Se establece en verdadero para habilitar el seguimiento de CV cuando el ajuste automático está en OFF. Se ignora en los modos Mano y Anular.
Valor predeterminado = FALSO
AllowCasRat
BOOL
Permitir el modo Cascada/Relación permisivo. Se establece en VERDADERO para permitir que el modo Cascada/Relación se selecciona utilizando ProgCasRatReq u OperCasRatReq.
Valor predeterminado = FALSO
ManualAfterInit
BOOL
Solicitud de aplicación del modo Manual tras la inicialización.
Cuando es VERDADERO, el bloque de funciones se pondrá en modo Manual si CVInitializing está establecido como VERDADERO, salvo que el modo actual sea Anular o Mano.
Cuando ManualAfterInit es FALSO, el modo del bloque de funciones no cambiará.
Valor predeterminado = FALSO
ProgProgReq
BOOL
Solicitud de programa del programa.
El programa de usuario lo establece en VERDADERO para solicitar Control de programa. Se ignora si ProgOperReq es VERDADERO. Manteniendo esto en VERDADERO y ProgOperReq en FALSO se puede utilizar para bloquear el bloque de funciones en Control de programa.
Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgOperReq
BOOL
Solicitud de operador del programa. El programa de usuario lo establece en VERDADERO para solicitar Control de operador. Manteniendo esto en VERDADERO se puede utilizar para bloquear el bloque de funciones en Control de operador. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgCasRatReq
BOOL
Solicitud de modo Programa-Cascada/Relación. El programa de usuario lo establece en VERDADERO para solicitar el modo Cascada/Relación. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgAutoReq
BOOL
Solicitud de modo Programa-Automático. El programa de usuario lo establece en VERDADERO para solicitar el modo Automático. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgManualReq
BOOL
Solicitud de modo Programa-Manual. El programa de usuario lo establece en VERDADERO para solicitar el modo Manual. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgOverrideReq
BOOL
Solicitud de modo Programa-Anular. El programa de usuario lo establece en VERDADERO para solicitar el modo Anular. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
ProgHandReq
BOOL
Solicitud de modo Programa-Mano. El programa de usuario lo establece en VERDADERO para solicitar el modo Mano. Este valor se suele leer como una entrada digital procedente de una estación manual/automática. Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece la entrada en FALSO.
Valor predeterminado = FALSO
OperProgReq
BOOL
Solicitud de programa del operador. La interfaz de operador lo establece en VERDADERO para solicitar Control de programa. El bloque de funciones restablece este parámetro en FALSO.
Valor predeterminado = FALSO
OperOperReq
Solicitud de operador del operador. La interfaz de operador lo establece en VERDADERO para solicitar Control de operador. El bloque de funciones restablecerá este parámetro en FALSO.
Valor predeterminado = FALSO
OperCasRatReq
BOOL
Solicitud de modo Operador-cada/Cascada/Relación. La interfaz de operador lo establece en VERDADERO solicitar el modo Cascada/Relación. El bloque de funciones restablecerá este parámetro en FALSO.
Valor predeterminado = FALSO
OperAutoReq
BOOL
Solicitud de modo Operador-Automático. La interfaz de operador lo establece en VERDADERO para solicitar el modo Automático. El bloque de funciones restablecerá este parámetro en FALSO.
Valor predeterminado = FALSO
OperManualReq
BOOL
Solicitud de modo Operador-Manual. La interfaz de operador lo establece en VERDADERO para solicitar el modo Manual. El bloque de funciones restablecerá este parámetro en FALSO.
Valor predeterminado = FALSO
ProgValueReset
BOOL
Restablecer los valores de control del programa. Si es VERDADERO, las entradas Prog_xxx_Req se restablecen en FALSAS.
Si es VERDADERO y está en Control de programa, se establece SPProg igual a SP y CVProg igual a CV.
Cuando ProgValueReset es VERDADERO, el bloque de funciones restablece este parámetro a FALSO.
Valor predeterminado = FALSO
TimingMode
DINT
Selecciona el modo Ejecución con base en tiempo.
Valor/Descripción
0 = Modo Periódico
1 = Modo Sobremuestreo
2 = Modo Muestreo en tiempo real
Para obtener más información sobre los modos de temporización, consulte “Atributos del bloque de funciones”.
Valor válido = de 0 a 2
Valor predeterminado = 0
OverSampleDT
REAL
Tiempo de ejecución para el modo Sobremuestreo.
Válido = de 0 a tiempo transcurrido TON_Timer máx. (4194,303 segundos)
Valor predeterminado = 0
RTSTime
DINT
Período de actualización del módulo para el modo Muestreo en tiempo real.
Válido = de 1 a 32.767
1 conteo = 1 ms
RTSTimeStamp
DINT
Valor del sello de tiempo del módulo para el modo Muestreo en tiempo real.
Válido = de 0 a 32.767
(envuelve desde 32.767 a 0)
1 conteo = 1 ms
PVTuneLimit
REAL
Límite de ajuste de PV, escalado en las unidades de PV. Cuando se ejecuta el Ajuste automático y PV de predicción supere este límite, el ajuste se cancelará.
Rango: cualquier punto flotante
Valor predeterminado = 0
AtuneTimeLimit
REAL
Tiempo máximo para completar el ajuste automático después del cambio de paso de CV. Cuando el ajuste automático supere este tiempo, el ajuste se cancelará.
Rango válido: cualquier punto flotante > 0.
Valor predeterminado = 60 minutos
NoiseLevel
DINT
Una estimación del nivel de ruido esperado en PV para que se realice la compensación durante el ajuste.
Las selecciones son: 0 = bajo, 1 = medio, 2 = alto
Rango: De 0 a 2
Predeterminado = 1
CVStepSize
REAL
Tamaño de paso de CV en porcentaje para la prueba de paso de ajuste. El tamaño de paso se agrega directamente a CV sujeto al límite alto o bajo.
Rango: de -100% a 100%
Valor predeterminado = 10%
ResponseSpeed
DINT
Velocidad deseada de respuesta de lazo cerrado.
Respuesta lenta: ResponseSpeed=0
Respuesta media: ResponseSpeed=1
Respuesta rápida: ResponseSpeed=2.
Si ResponseSpeed es menor que 0, se utiliza una respuesta lenta. Si ResponseSpeed es mayor que 2, se utiliza una respuesta rápida.
Rango: De 0 a 2
Predeterminado = 1
ModelInit
BOOL
Interruptor de inicialización de modelo interno.
Valor predeterminado = FALSO
Factor
REAL
Factor de aproximación del modelo sin integración. Solo se utiliza para integrar tipos de proceso.
Valor predeterminado = 100
AtuneStart
BOOL
Solicitud de inicio de Ajuste automático. Se establece en verdadero para iniciar el ajuste automático del bloque de funciones. Se ignora cuando IMC no está en modo Manual. El bloque de funciones restablecerá este parámetro en FALSO.
Valor predeterminado = FALSO
AtuneUseModel
BOOL
Solicitud de uso del modelo de ajuste automático. Se establece en verdadero para reemplazar los parámetros del modelo actual con los parámetros calculados del modelo de ajuste automático. El bloque de funciones establece el parámetro de entrada a FALSO.
Valor predeterminado = FALSO
AtuneAbort
BOOL
Solicitud de invalidación de Ajuste automático. Se establece en verdadero para invalidar el ajuste automático del bloque de funciones de IMC. El bloque de funciones establece el parámetro de entrada a FALSO.
Valor predeterminado = FALSO
Parámetros de salida
Tipo de datos
Descripción
Valores válidos y predeterminados
EnableOut
BOOL
Indica si la instrucción está habilitada. Se establece en falso si CVEU produce un desbordamiento.
CVEU
REAL
Salida de variable de control escalada. Se escala utilizando CVEUMax y CVEUMin, donde CVEUMax corresponde al 100% y CVEUMin corresponde al 0%. Esta salida se utiliza por lo general para controlar un módulo de salida analógica o un lazo secundario.
CVEU = (CV * CVEUSpan / 100) + CVEUMin
Cálculo de la extensión de CVEU: CVEUSpan = (CVEUMax − CVEUMin)
CV
REAL
Salida de variable de control. Este valor tiene que estar siempre expresado como de 0 a 100%. La CV está limitada por CVHLimit y CVLLimit cuando está en modo Automático o Cascada/Relación, o modo Manual si CVManLimiting es VERDADERO; de lo contrario está limitada por 0 y 100%.
DeltaCV
REAL
Diferencia entre la CV actual y la CV anterior (CV actual - CV anterior).
CVInitializing
BOOL
Indicador de modo Inicialización. Se establece en VERDADERO cuando CVInitReq o el bloque de funciones FirstScan es VERDADERO, o en una transición de VERDADERO a FALSO de CVFault (de estado incorrecto a correcto). CVInitializing se establece a FALSO después de que el bloque de funciones haya sido inicializado y CVInitReq ya no esté en VERDADERO.
CVHAlarm
BOOL
Indicador de alarma de CV alto. VERDADERO cuando el valor calculado para CV > 100 o CVHLimit.
CVLAlarm
BOOL
Indicador de alarma de CV bajo. VERDADERO cuando el valor calculado para CV < 0 o CVLLimit.
CVROCPosAlarm
BOOL
Indicador de alarma de índice de cambio de CV. VERDADERO cuando el índice de cambio calculado para CV supera CVROCPosLimit.
CVROCNegAlarm
REAL
Indicador de alarma de índice de cambio de CV. VERDADERO cuando el índice de cambio calculado para CV supera CVROCNegLimit.
SP
REAL
Valor de punto de ajuste actual. El valor de SP se utiliza para controlar CV cuando está en el modo Automático, Cascada/Relación o Seguimiento de PV, escalado en unidades de PV.
SPPercent
REAL
El valor de SP expresado en porcentaje de extensión de PV.
SPPercent = ((SP − PVEUMin) * 100) / PVSpan
donde
PVSpan = PVEUMax − PVEUMin
SPHAlarm
BOOL
Indicador de alarma de límite alto de SP. VERDADERO cuando SP ≥ SPHLimit.
SPLAlarm
BOOL
Indicador de alarma de límite bajo de SP. VERDADERO cuando SP ≤ SPLLimit.
PVPercent
REAL
PV expresado en porcentaje de extensión.
PVPercent = ((PV − PVEUMin) * 100) / PVSpan
Cálculo de la extensión de PV: PVSpan =
( PVEUMax − PVEUMin )
E
REAL
Error de proceso. Diferencia entre SP y PV, escalado en unidades de PV.
EPercent
REAL
El error expresado en forma de porcentaje de extensión.
InitPrimary
BOOL
Comando de inicialización de lazo primario. VERDADERO cuando no está en modo Cascada/Relación o cuando CVInitializing is VERDADERO. Esta señal la usará normalmente la entrada CVInitReq de un lazo primario.
WindupHOut
BOOL
Indicador de windup alto. VERDADERO cuando se ha alcanzado un límite alto de SP o alto/bajo de CV. La entrada WindupHIn la usará normalmente esta señal para limitar el windup de la salida CV en un lazo primario.
WindupLOut
BOOL
Indicador de windup bajo. VERDADERO cuando se ha alcanzado un límite de SP o un límite alto/bajo de CV. La entrada WindupLIn la usará normalmente esta señal para limitar el windup de la salida CV en un lazo primario.
Ratio
REAL
Multiplicador de relación actual, sin unidades.
RatioHAlarm
BOOL
Indicador de alarma de límite alto de relación. VERDADERO cuando Ratio > RatioHLimit.
RatioLAlarm
BOOL
Indicador de alarma de valor bajo de relación. VERDADERO cuando Ratio < RatioLLimit.
ProgOper
BOOL
Indicador de control de programa/operador. VERDADERO cuando está en modo Control de programa. FALSO cuando está en modo Control de operador.
CasRat
BOOL
Indicador de modo Cascada/Relación. VERDADERO cuando está en modo Cascada/Relación.
Auto
BOOL
Indicador de modo Automático. VERDADERO cuando está en modo Automático.
Manual
BOOL
Indicador de modo Manual. VERDADERO cuando está en modo Manual.
Override
BOOL
Indicador de modo Anular. VERDADERO cuando está en modo Anular.
Hand
BOOL
Indicador de modo Mano. VERDADERO cuando está en modo Hand.
DeltaT
REAL
Tiempo transcurrido entre actualizaciones en segundos.
StepSizeUsed
REAL
Tamaño de paso de CV real que se utiliza para el ajuste.
GainTuned
REAL
El valor calculado de la ganancia de modelo interno después de que haya concluido el ajuste.
TCTuned
REAL
El valor calculado de la constante de tiempo de modelo interno después de que haya concluido el ajuste.
DTTuned
REAL
El valor calculado del tiempo muerto de modelo interno después de que haya concluido el ajuste.
RespTCTunedS
REAL
El valor calculado de la constante de tiempo de la variable de control en la velocidad de respuesta lenta después de que haya concluido el ajuste.
RespTCTunedM
REAL
El valor calculado de la constante de tiempo de la variable de control en la velocidad de respuesta media después de que haya concluido el ajuste.
RespTCTunedF
REAL
El valor calculado de la constante de tiempo de la variable de control en la velocidad de respuesta rápida después de que haya concluido el ajuste.
AtuneOn
BOOL
Se establece en verdadero cuando se ha iniciado el ajuste automático.
AtuneDone
BOOL
Se establece en verdadero cuando se ha concluido correctamente el ajuste automático.
AtuneAborted
BOOL
Se establece en verdadero cuando el ajuste automático ha sido anulado por el usuario o porque se han producido errores durante la operación de ajuste automático.
AtuneStatus
DINT
Indica el estado del ajuste de bloque.
AtuneFault
BOOL
El ajuste automático ha generado alguno de los siguientes fallos.
Bit 0 de AtuneStatus
AtunePVOutOfLimit
BOOL
Tanto la PV como la predicción de paso de tiempo muerto de PV superan a PVTuneLimit durante el ajuste automático. Si es verdadero, el ajuste automático se invalida.
Bit 1 de AtuneStatus
AtuneModeInv
BOOL
El modo de IMC no era Manual al inicio del ajuste automático o se cambió del modo Manual durante el ajuste automático. Si es verdadero, el ajuste automático no se inicia o se invalida.
Bit 2 de AtuneStatus
AtuneCVWindupFault
BOOL
WindupHIn o WindupLIn es verdadero al inicio o durante el ajuste automático. Si es verdadero, el ajuste automático no se inicia o se invalida.
Bit 3 de AtuneStatus
AtuneStepSize0
BOOL
StepSizeUsed = 0 al inicio del ajuste automático. Si es verdadero, el ajuste automático no se inicia.
Bit 4 de AtuneStatus
AtuneCVLimitsFault
BOOL
CVLimitsInv y CVManLimiting es verdadero al inicio o durante el ajuste automático. Si es verdadero, el ajuste automático no se inicia o se invalida.
Bit 5 de AtuneStatus
AtuneCVInitFault
BOOL
CVInitializing es verdadero al inicio o durante el ajuste automático. Si es verdadero, el ajuste automático no se inicia o se invalida.
Bit 6 de AtuneStatus
AtuneEUSpanChanged
BOOL
CVEUSpan o PVEUSpan cambia durante el ajuste automático. Si es verdadero, el ajuste automático se invalida.
Bit 7 de AtuneStatus
AtuneCVChanged
BOOL
CVOper se cambia cuando está en Control de operador o CVProg se cambia cuando está en Control de programa o cuando se ha alcanzado un límite de CV alto/bajo o ROC durante el ajuste automático. Si es verdadero, el ajuste automático
se invalida.
Bit 8 de AtuneStatus
AtuneTimeout
BOOL
El tiempo transcurrido es mayor que AtuneTimeLimit desde que se inicia la prueba de paso. Si es verdadero, el ajuste automático se invalida.
Bit 9 de AtuneStatus
AtunePVNotSettled
BOOL
La PV cambia demasiado para realizar el ajuste automático. Si es verdadero, el ajuste automático se invalida. Espere hasta que la PV sea más estable antes de realizar el ajuste automático.
Bit 10 de AtuneStatus
Status1
DINT
Estado del mapa de bits del bloque de funciones.
Status2
DINT
Estado del mapa de bits adicional para el bloque de funciones.
InstructFault
BOOL
El bloque de funciones ha generado un fallo. Indica el estado de los bits en Status1 y Status2.
Un valor 0 indica que no se han producido fallos. Los parámetros que se pueden configurar con un valor no válido deben tener un parámetro de estado para indicar su estado no válido.
Bit 0 de Status1
PVFaulted
BOOL
Estado incorrecto de variable de proceso PV.
Bit 1 de Status1
CVFaulted
BOOL
Variable de control CV con fallo
Bit 2 de Status1
HandFBFaulted
BOOL
Estado incorrecto del valor de HandFB
Bit 3 de Status1
PVSpanInv
BOOL
Extensión de PV no válida, PVEUMax < PVEUMin.
Bit 4 de Status1
SPProgInv
BOOL
SPProg < SPLLimit o > SPHLimit. Valor de límite utilizado para SP.
Bit 5 de Status1
SPOperInv
BOOL
SPOper < SPLLimit o > SPHLimit. Valor de límite utilizado para SP.
Bit 6 de Status1
SPCascadeInv
BOOL
SPCascade < SPLLimit o > SPHLimit. Valor de límite utilizado para SP.
Bit 7 de Status1
SPLimitsInv
BOOL
Límites no válidos: SPLLimit < PVEUMin, SPHLimit > PVEUMax o SPHLimit < SPLLimit. Si SPHLimit < SPLLimit, entonces limita el valor utilizando SPLLimit.
Bit 8 de Status1
RatioLimitsInv
BOOL
Límites alto/bajo de Ratio no válidos, límite bajo < 0 o límite alto < límite bajo.
Bit 9 de Status1
RatioProgInv
BOOL
RatioProg < RatioLLimit o > RatioHLimit. Valor de límite utilizado para Ratio.
Bit 10 de Status1
RatioOperInv
BOOL
RatioOper < RatioLLimit o > RatioHLimit. Valor de límite utilizado para Ratio.
Bit 11 de Status1
CVProgInv
BOOL
CVProg < 0 o > 100, o < CVLLimit o > CVHLimit cuando CVManLimiting es VERDADERO. Valor de límite utilizado para CV.
Bit 12 de Status1
CVOperInv
BOOL
CVOper < 0 o > 100, o < CVLLimit o > CVHLimit cuando CVManLimiting es VERDADERO. Valor de límite utilizado para CV.
Bit 13 de Status1
CVOverrideValueInv
BOOL
CVOverrideValue < 0 o > 100. Valor de límite utilizado para CV.
Bit 14 de Status1
CVTrackValueInv
BOOL
CVTrackValue < 0 o > 100. Valor de límite utilizado para CV.
Bit 15 de Status1
CVEUSpanInv
BOOL
Extensión de CVEU no válida, CVEUMax es igual a CVEUMin.
Bit 16 de Status1
CVLimitsInv
BOOL
CVLLimit < 0, CVHLimit > 100, o CVHLimit <= CVLLimit. Si CVHLimit <= CVLLimit, limita CV utilizando CVLLimit.
Bit 17 de Status1
CVROCLimitInv
BOOL
Si CVROCLimit < 0, deshabilita el límite de ROC.
Bit 18 de Status1
HandFBInv
BOOL
HandFB < 0 o > 100. Valor de límite utilizado para CV.
Bit 19 de Status1
SampleTimeTooSmall
BOOL
Model DeadTime/DeltaT debe ser menor o igual a 200.
Bit 20 de Status1
FactorInv
BOOL
Factor < 0.
Bit 21 de Status1
ModuleGainInv
BOOL
ModelGain es 1.#QNAN o -1.#IND (no es un número), o ± 1.$ (infinito ∞)
Bit 22 de Status1
ModelTCInv
BOOL
ModelTC < 0.
Bit 23 de Status1
ModelDTInv
BOOL
ModelDT < 0.
Bit 24 de Status1
RespTCInv
BOOL
RespTC < 0.
Bit 25 de Status1
TimingModelInv
BOOL
TimingMode no válido. Si el modo actual no es Anular o Mano, entonces se establece el modo Manual.
Bit 27 de Status2
RTSMissed
BOOL
Solo se utiliza cuando se está en modo Muestreo en tiempo real. Es VERDADERO (TRUE) cuando ABS(DeltaT – RTSTime) > 1 milisegundo.
Bit 28 de Status2.
RTSTimeInv
BOOL
RTSTime no válido.
Bit 29 de Status2.
RTSTimeStampInv
BOOL
RTSTimeStamp no válido. Si el modo actual no es Anular o Mano, entonces se establece el modo Manual.
Bit 30 de Status2.
DeltaTInv
BOOL
DeltaT no válido. Si el modo actual no es Anular o Mano, entonces se establece el modo Manual.
Bit 31 de Status2.
Descripción
La siguiente ilustración muestra la configuración del bloque de funciones de IMC.
IMC Description
En cada ejecución, el bloque de funciones de IMC compara la medición de la PV real con la predicción de PV. El resultado se denomina estimación de las alteraciones, que es el efecto de las alteraciones del proceso no medidas combinadas con la imprecisión del modelado. La estimación de las alteraciones se utiliza como polarización para el punto de ajuste de la variable de control. En el caso idóneo de ausencia de alteraciones y modelado perfecto, la estimación de las alteraciones (la señal de retroalimentación) es igual a cero.
Modelo de primer orden
M = K/(T*s+1)*exp(-D*s)
Inversa del modelo
Inv = (T*s+1)/K
Filtro de primer orden
F = 1/(e*s+1)
Predicción de PV = exp(-D*s)/(e*s+1) * (SP - alteraciones estimadas)
K...
Ganancia de modelo
T...
Constante de tiempo de modelo
D...
Tiempo muerto de modelo
e...
Constante de tiempo de respuesta
s...
Variable de Laplace
El bloque de funciones calcula entonces el valor de CV (se imponen los límites CVHLimit, CVLLimit e índice de cambio) y la predicción de PV.
El bloque de funciones de IMC se puede utilizar en lugar de un bloque de funciones PID con la ventaja sobre la variable de control PID cuando se controlan procesos con grandes tiempos muertos.
Para un tipo de proceso de integración (como control de nivel y control de posición), se utiliza un modelo interno de no integración para aproximar el proceso de integración. El parámetro Factor se utiliza para convertir el modelo de proceso de integración identificado en un modelo interno de no integración que se utiliza para el cálculo de CV. Esto es necesario para proporcionar una ejecución de IMC estable.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte Atributos comunes para ver los fallos relacionados con el operando.
Ejecución
Bloque de funciones
Condición/estado
Acción realizada
Pre-escaneado
Los bits EnableIn y EnableOut se establecen en falsos.
Tag.EnableIn es falso
Los bits EnableIn y EnableOut se establecen en falsos.
Tag.EnableIn es verdadero
Los bits EnableIn y EnableOut se establecen en verdaderos.
La instrucción se ejecuta.
Primera ejecución de instrucción
N/A
Primer escaneado de instrucción
N/A
Post-escaneado
Los bits EnableIn y EnableOut se establecen en falsos.
Texto estructurado
Condición/estado
Acción realizada
Pre-escaneado
Consulte Pre-escaneado en la tabla Bloque de funciones.
Ejecución normal
Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones.
Post-escaneado
Consulte Post-escaneado en la tabla Bloque de funciones.
Ejemplos
Bloque de funciones
IMC_FB_ex_v31
Texto estructurado
imcTag.PV := imcInput1;
imcTag.SPProg := imcInput2;
imcTag.CVProg := imcInput3;
IMC(imcTag);
imcOutput1 := imcTag.CVEU;
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal