Intégrateur (INTG)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, CompactLogix
5380, ControlLogix
5580 et ControlLogix 5590.Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
INTG(INTG_tag);
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
|---|---|---|---|
INTG tag | INTEGRATOR | Structure | Structure INTG |
Structure INTEGRATOR
Paramètre d’entrée | Type de données | Description |
|---|---|---|
EnableIn | BOOL | Activez l'entrée. Si mis à zéro, l'instruction n'est pas exécutée et les sorties ne sont pas mises à jour. La valeur par défaut est définie. |
In | REAL | Entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
Initialize | BOOL | Demander à initialiser l'algorithme de contrôle. Output = InitialValue tant que Initialize est défini. Valide = tout flottant Par défaut = 0,0 |
InitialValue | REAL | Valeur initiale pour l'instruction. Output = InitialValue tant que Initialize est défini. Valide = tout flottant Par défaut = 0,0 |
IGain | REAL | Multiplicateur de gain intégral. Si IGain < 0 ; l'instruction définit IGain = 0,0, attribue le bit approprié dans Status et laisse Output inchangé. Valide = entre 0,0 et la flottante positive maximale Par défaut = 0,0 |
HighLimit | REAL | Valeur de limite haute pour Out. Si HighLimit LowLimit, l’instruction définit HighAlarm et LowAlarm, attribue le bit approprié dans Status et définit Out = LowLimit.Valide = tout flottant Par défaut = nombre flottant positif maximum |
LowLimit | REAL | Valeur de limite basse pour Out. Si HighLimit LowLimit, l’instruction définit HighAlarm et LowAlarm, attribue le bit approprié dans Status et définit Out = LowLimit.Valide = tout flottant Par défaut = nombre flottant négatif maximum |
HoldHigh | BOOL | Demande de maintien sortie haute. Si défini, Out n'est pas autorisé à augmenter la valeur. La valeur par défaut est mise à zéro. |
HoldLow | BOOL | Demande de maintien sortie basse. Si défini, Out n'est pas autorisé à diminuer la valeur. La valeur par défaut est mise à zéro. |
TimingMode | DINT | Sélectionne le mode d'exécution de la temporisation. 0 = mode périodique 1 = mode sur-échantillonnage 2 = mode échantillonnage en temps réel Reportez-vous aux attributs des blocs fonctionnels pour plus d’informations sur les modes de temporisation. Valide = de 0 à 2 Par défaut = 0 |
OversampleDT | REAL | Temps d’exécution du mode suréchantillonnage. Valide = 0 à 4194.303 secondes Par défaut = 0 |
RTSTime | DINT | Période de mise à jour du module pour le mode Échantillonnage en temps réel. Valide = de 1 à 32 767 ms Par défaut = 1 |
RTSTimeStamp | DINT | Valeur d'horodatage du module pour le mode Échantillonnage en temps réel Valide = de 0 à 32 767 ms Par défaut = 0 |
Paramètre de sortie | Type de données | Description |
|---|---|---|
EnableOut | BOOL | Indique si l'instruction est activée. Mis à zéro (faux) en cas de débordement d'Out. |
Out | REAL | Sortie calculée de l’algorithme. |
HighAlarm | BOOL | Indicateur d'alarme de limite haute. Lorsque Out HighLimit, HighAlarm est défini et la sortie est limitée à la valeur de HighLimit. |
LowAlarm | BOOL | Indicateur d'alarme de limite basse. Lorsque Out LowLimit, LowAlarm est défini et la sortie est limitée à la valeur de LowLimit. |
DeltaT | REAL | Temps écoulé entre les mises à jour. Cela correspond au temps écoulé en seconde utilisé par l'algorithme de contrôle pour calculer la sortie du processus. |
Status | DINT | État du bloc fonctionnel. |
InstructFault (Status.0) | BOOL | L'instruction a détecté l'une des erreurs d'exécution suivantes. Il ne s'agit pas d'une erreur d'automate mineure ou majeure. Contrôlez les bits d'état restants pour déterminer la cause du problème. |
IGainInv (Status.1) | BOOL | IGain > maximum ou IGain < minimum. |
HighLowLimsInv (Status.2) | BOOL | HighLimit LowLimit. |
TimingModeInv (Status.27) | BOOL | Valeur TimingMode non valide. Reportez-vous aux attributs des blocs fonctionnels pour plus d’informations sur les modes de temporisation. |
RTSMissed (Status.28) | BOOL | Utilisé seulement en mode Échantillonnage en temps réel. Défini lorsque ABS | DeltaT - RTSTime | > 1 (0,001 seconde). |
RTSTimeInv (Status.29) | BOOL | Valeur RTSTime non valide. |
RTSTimeStampInv (Status.30) | BOOL | Valeur RTSTimeStamp non valide. |
DeltaTInv (Status.31) | BOOL | Valeur DeltaT non valide. |
Texte structuré
Opérande | Type | Format | Description |
|---|---|---|---|
INTG tag | INTEGRATOR | Structure | Structure INTG |
Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Description
L'instruction INTG est conçue pour s'exécuter dans une tâche où la vitesse de scrutation demeure constante.
L'instruction INTG exécute cet algorithme de contrôle quand Initialize est mis à zéro et DeltaT > 0.

Si la valeur de sortie calculée n'est pas valide, NAN, ou
INF, l'instruction définit Out = valeur non valide. Les paramètres internes ne sont pas mis à jour. Dans chaque scrutation suivante, la sortie est calculée en utilisant les paramètres internes de la dernière scrutation lorsque la sortie était valide.
INF, l'instruction définit Out = valeur non valide. Les paramètres internes ne sont pas mis à jour. Dans chaque scrutation suivante, la sortie est calculée en utilisant les paramètres internes de la dernière scrutation lorsque la sortie était valide.Limiting
L’instruction INTG exécute une limitation de saturation d’intégrale pour empêcher Out de changer en fonction de l’état des entrées HoldHigh et HoldLow. Si HoldHigh est défini et que Out > Out
n-1
, Out = Outn-1
. Si HoldLow est défini et que Out < Outn-1
, Out = Outn-1
.L’instruction INTG effectue également la limitation de sortie à l’aide de HighLimit et LowLimit. Si Out ≥ HighLimit, Out = HighLimit et HighAlarm est défini. Si Out ≤ LowLimit, Out = LowLimit et LowAlarm est défini.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Un défaut mineur se produit lorsque : | Type de défaut | Code de défaut |
|---|---|---|
Cette fonctionnalité est activée et un débordement est détecté. | 4 | 4 |
Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
NOTE:
Dans Texte Structuré, EnableIn est toujours vrai lors d'une scrutation normale. Par conséquent, si l'instruction est dans le chemin d'accès de commande activé par la logique, elle est exécutée. Pour plus de détails, notamment sur les définitions et le comportement général pour toutes les instructions de bloc fonctionnel, reportez-vous à la publication 1756-RM006G-FR-P, Instructions pour le contrôle avancé des procédés et des variateurs.
Condition/état | Action entreprise |
|---|---|
Préscrutation | Aucune action n'est entreprise. |
Post-scrutation | Aucune action n'est entreprise. |
Ces conditions ne se produisent que dans le mode Scrutation normale
Condition/état | Action entreprise |
|---|---|
Première exécution de l'instruction | Les paramètres internes et Out sont définis sur 0. L'algorithme primaire n'est pas exécuté, mais il validera cependant les paramètres d'entrée. |
Première scrutation de l'instruction | Les paramètres internes et Out sont définis sur 0. L'algorithme primaire n'est pas exécuté, mais il validera cependant les paramètres d'entrée. |
EnableIn est faux | Le bit .EnableOut est défini sur faux. |
EnableIn est vrai | Le bit .EnableOut est défini sur vrai. L'algorithme principal de l'instruction sera exécuté et les sorties seront actualisées. |
Exemples
Dans de nombreuses applications, la conception du régulateur en boucle fermée inclut un composant de gain intégral afin d'éliminer ou minimiser les erreurs dans le système régulé. Un régulateur en mode proportionnel seul aura peu tendance à générer des erreurs sur le zéro dans le système. Un régulateur qui utilise un gain proportionnel et intégral a cependant tendance à impulser le signal d'erreur sur le zéro sur une période donnée. L'instruction INTG applique l'équation suivante pour calculer sa sortie.

Dans le diagramme ci-dessous, l'entrée dans le bloc passe de 0 à +200 unités. Durant cette période, la sortie du bloc s'intègre à 2800 unités. Pendant que In repasse de +200 unités à 0 unité, Out se maintient à 2800 unités. Quand In passe de 0 à -300 unités, Out descend progressivement à -1400 unités jusqu'à ce que In soit revenu à 0. Enfin, à mesure que In passe de 0 à +100, Out revient progressivement à 0 où In est défini sur 0 et Out revient sur 0.
Cette caractéristique de l'intégrateur - mouvement continu dans une certaine direction pendant qu'une entrée dans la fonction est présente, ou maintien à un certain niveau au moment où l'entrée est sur zéro - explique qu'un régulateur en mode de gain intégral ait tendance à générer une erreur sur zéro sur une période donnée.

L'exemple suivant montre comment utiliser l'instruction INTG. Dans de nombreuses instances, les entrées HighLimit et LowLimit limitent le pourcentage total de contrôle dont dispose l'élément de gain intégral en tant que fonction de la sortie totale du régulateur. D'autre part, les entrées HoldHigh et HoldLow peuvent être utilisées pour empêcher la sortie d'aller plus loin vers le sens positif ou le sens négatif. Les entrées HoldHigh et HoldLow empêchent l'instruction INTG de « s'enrouler » dans une direction déjà en dehors des limites de la variable contrôlée.
Bloc fonctionnel
Cet exemple illustre la programmation légale minimale du bloc fonctionnel INTG et il est utilisé pour montrer le texte neutre et le code généré pour cette instruction. Ce contenu est fourni à usage interne uniquement et ne constitue pas un cas de test.

Texte structuré
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);
Fournir une réponse
LowLimit, l’instruction définit HighAlarm et LowAlarm, attribue le bit approprié dans Status et définit Out = LowLimit.
HighLimit, HighAlarm est défini et la sortie est limitée à la valeur de HighLimit.