Integrador (INTG)
Esta información se aplica a los controladores
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, CompactLogix
5380, ControlLogix
5580 y ControlLogix 5590.Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en la lógica de diagrama de escalera.
Bloque de funciones

Texto estructurado
INTG(INTG_tag);
Operandos
Bloque de funciones
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
INTG tag | INTEGRATOR | Estructura | Estructura INTG |
Estructura de INTEGRATOR
Parámetro de entrada | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Habilita la entrada. Si no está activada, la instrucción no se ejecuta y las salidas no se actualizan. Está establecido de forma predeterminada. |
In | REAL | La entrada de la señal analógica a la instrucción. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
Initialize | BOOL | Solicitud para inicializar el algoritmo de control. Salida = InitialValue mientras Initialize esté establecido. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
InitialValue | REAL | El valor inicial para la instrucción. Salida = InitialValue mientras Initialize esté establecido. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
IGain | REAL | El multiplicador de ganancia integral. Si IGain < 0; la instrucción establece IGain = 0,0, establece el bit correspondiente en Status y deja Output sin cambios. Válido = de 0,0 a número de punto flotante positivo máximo Valor predeterminado = 0,0 |
HighLimit | REAL | El valor de límite alto para Out. Si HighLimit LowLimit, la instrucción establece HighAlarm y LowAlarm, establece el bit apropiado en Status y establece Out = LowLimit.Válido = cualquier punto flotante Valor predeterminado = punto flotante positivo máximo |
LowLimit | REAL | El valor de límite bajo de para Out. Si HighLimit LowLimit, la instrucción establece HighAlarm y LowAlarm, establece el bit apropiado en Status y establece Out = LowLimit.Válido = cualquier punto flotante Valor predeterminado = punto flotante negativo máximo |
HoldHigh | BOOL | Solicitud de retención de salida alta. Cuando está establecido, el valor de Out no puede incrementarse. Está borrado de forma predeterminada. |
HoldLow | BOOL | Solicitud de retención de salida baja. Cuando está establecido, el valor de Out no puede reducirse. Está borrado de forma predeterminada. |
TimingMode | DINT | Selecciona el modo de ejecución de temporizació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”. Válido = de 0 a 2 Valor predeterminado = 0 |
OversampleDT | REAL | Tiempo de ejecución del modo de Sobremuestreo. Válido = de 0 a 4194,303 segundos Valor predeterminado = 0 |
RTSTime | DINT | Período de actualización de módulo para el modo de muestreo en tiempo real Válido = de 1 a 32.767 ms Valor predeterminado = 1 |
RTSTimeStamp | DINT | Valor del sello de tiempo del módulo para el modo de muestreo en tiempo real. Válido = de 0 a 32.767 ms Valor predeterminado = 0 |
Parámetro de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | Indica si la instrucción está habilitada. Se establece en falso si Out produce un desbordamiento. |
Out | REAL | La salida calculada del algoritmo. |
HighAlarm | BOOL | Indicador de alarma de límite alto. Cuando Out HighLimit, se establece HighAlarm y la salida se limita al valor de HighLimit. |
LowAlarm | BOOL | Indicador de alarma de límite bajo. Cuando Out LowLimit, se establece LowAlarm y la salida se limita al valor de LowLimit. |
DeltaT | REAL | Tiempo transcurrido entre actualizaciones. Este es el tiempo transcurrido en segundos utilizado por el algoritmo de control para calcular la salida del proceso. |
Status | DINT | Estado del bloque de funciones. |
InstructFault (Status.0) | BOOL | La instrucción detectó uno de los siguientes errores de ejecución. No se trata de un error mayor o menor del controlador. Se comprueban los bits de estado restantes para determinar lo que ha ocurrido. |
IGainInv (Status.1) | BOOL | IGain > máximo o IGain < mínimo. |
HighLowLimsInv (Status.2) | BOOL | HighLimit LowLimit. |
TimingModeInv (Status.27) | BOOL | Valor de TimingMode no válido. Para obtener más información sobre los modos de temporización, consulte “Atributos del bloque de funciones”. |
RTSMissed (Status.28) | BOOL | Solo se utiliza en el modo de muestreo en tiempo real. Se establece cuando ABS | DeltaT - RTSTime | > 1 (0,001 segundos). |
RTSTimeInv (Status.29) | BOOL | Valor de RTSTime no válido. |
RTSTimeStampInv (Status.30) | BOOL | Valor de RTSTimeStamp no válido. |
DeltaTInv (Status.31) | BOOL | Valor de DeltaT no válido. |
Texto estructurado
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
INTG tag | INTEGRATOR | Estructura | Estructura INTG |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Descripción
La instrucción INTG está diseñada para ejecutarse en una tarea en la que el índice de escaneado se mantiene constante.
La instrucción INTG ejecuta este algoritmo de control cuando Initialize está borrado y DeltaT > 0.

Siempre que el valor calculado para la salida no sea válido, NAN o
INF, la instrucción establece Out = el valor no válido. Los parámetros internos no se actualizan. En cada uno de los escaneados posteriores, la salida se calcula utilizando los parámetros internos desde el último escaneado en el que la salida era válida.
INF, la instrucción establece Out = el valor no válido. Los parámetros internos no se actualizan. En cada uno de los escaneados posteriores, la salida se calcula utilizando los parámetros internos desde el último escaneado en el que la salida era válida.Limitación
La instrucción INTG realiza la limitación de windup para evitar que Out cambie en función del estado de las entradas HoldHigh y HoldLow. Si HoldHigh está establecido y Out > Out
n-1
, entonces Out = Outn-1
. Si HoldLow está establecido y Out < Outn-1
, entonces Out = Outn-1
.La instrucción INTG también realiza la limitación de salida utilizando HighLimit y LowLimit. Si Out ≥ HighLimit, Out = HighLimit y se establece HighAlarm. Si Out ≤ LowLimit, Out = LowLimit y se establece LowAlarm.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
El fallo menor ocurre cuando | Tipo de fallo | Código de fallo |
|---|---|---|
La función está habilitada y se detecta un desbordamiento. | 4 | 4 |
Consulte Atributos comunes para ver los fallos relacionados con el operando.
Ejecución
OBSERVACIÓN:
En Texto estructurado, EnableIn siempre es verdadero durante un escaneado normal. Por tanto, si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará. Para obtener más información, incluidas las definiciones y el comportamiento general de todas las instrucciones del bloque de funciones, consulte la publicación 1756-RM006G-ES-P, Instrucciones avanzadas de control de procesos y variadores.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | No se realiza ninguna acción. |
Post-escaneado | No se realiza ninguna acción. |
Condiciones que ocurren únicamente durante el modo de exploración normal
Condición/estado | Acción realizada |
|---|---|
Primera ejecución de instrucción | Los parámetros internos y Out se establece a 0. El algoritmo principal no se ejecuta, pero validará los parámetros de entrada. |
Primer escaneado de instrucción | Los parámetros internos y Out se establece a 0. El algoritmo principal no se ejecuta, pero validará los parámetros de entrada. |
EnableIn es falso | El bit .EnableOut se borra a falso. |
EnableIn es verdadero | El bit .EnableOut se establece en verdadero. El algoritmo principal de la instrucción se ejecutará y las salidas se actualizarán. |
Ejemplos
En muchas aplicaciones se incluye un componente de ganancia integral en el diseño del regulador de lazo cerrado para eliminar o minimizar los errores en el sistema que se está regulando. Un regulador recto solo proporcional no tenderá a poner a cero los errores en el sistema. Un regulador que utiliza la ganancia proporcional e integral, sin embargo, tiende a poner la señal de error a cero durante un período de tiempo. La instrucción INTG utiliza la siguiente ecuación para calcular su salida.

En el diagrama siguiente, la entrada al bloque se mueve de 0 a +200 unidades. Durante este período, la salida del bloque se integra a 2800 unidades. Dado que In cambia de +200 unidades a 0 unidades, Out se mantiene en 2800 unidades. Cuando In transición de 0 a -300 unidades, Out se integra lentamente a -1400 unidades hasta que las transiciones se vuelven a 0. Finalmente, dado que In se mueve de 0 a +100, Out se integra de nuevo a 0 donde In se establece en 0 coincidiendo con Out alcanza 0.
Esta característica del integrador (que se acciona continuamente en una dirección específica mientras que cualquier entrada a la función está presente o se mantiene en cualquier nivel durante el punto donde la entrada está en cero) es lo que hace que un regulador que utilice la ganancia integral avance hacia error cero sobre un periodo de tiempo.

En el ejemplo siguiente se muestra cómo se puede utilizar la instrucción INTG. En muchos casos, las entradas HighLimit y LowLimit limitan el porcentaje total del control que el elemento de ganancia integral podría tener como función de la salida total del regulador. Por otro lado, las entradas HoldHigh y HoldLow se pueden utilizar para evitar que la salida se mueva más en dirección positiva o negativa. Las entradas HoldHigh y HoldLow impiden que la instrucción INTG haga un "winding-up" en una dirección que sobrepase los límites de la variable controlada.
Bloque de funciones
Este ejemplo es la programación legal mínima del bloque de funciones INTG y sólo se utiliza para mostrar el texto neutro y el código generado para esta instrucción. Esto solo sirve para propósitos internos y no es un caso comprobable.

Texto estructurado
INTG_01.In := Input_Value;
INTG_01.Initialize := Initialize_flag;
INTG_01.InitialValue := Int_Init_Val;
INTG_01.IGain := I_Gain;
INTG_01.HighLimit := Int_saturate_high;
INTG_01.LowLimit := Int_saturate_low;
INTG_01.HoldHigh :=HAlarm_Status;
INTG_01.HoldLow := LAlarm_Status;
INTG(INTG_01);
Entregue su opinión
LowLimit, la instrucción establece HighAlarm y LowAlarm, establece el bit apropiado en Status y establece Out = LowLimit.
HighLimit, se establece HighAlarm y la salida se limita al valor de HighLimit.