Contrôle de modèle interne (Internal Model Control, IMC)

Ces informations s’appliquent aux automates
CompactLogix
 5370,
ControlLogix
 5570,
Compact GuardLogix
 5370,
GuardLogix
 5570,
Compact GuardLogix
 5380,
CompactLogix
 5380,
ControlLogix
 5580,
GuardLogix
 5580 et ControlLogix 5590.
L'instruction Contrôle de modèle interne (Internal Model Control, IMC) contrôle une seule variable de procédé en manipulant une seule sortie de variable de contrôle. Ce bloc fonctionnel exécute un algorithme où le signal d’erreur réelle est comparé à celui d’un modèle de retard de premier ordre plus zone morte du procédé. Le bloc fonctionnel IMC calcule la sortie de variable de contrôle (CV) en mode Auto en fonction de la déviation PV-SP, du modèle interne et du réglage.
Langues disponibles
Diagramme à relais
Cette instruction n’est pas disponible dans un diagramme à relais.
Bloc fonctionnel
IMC_FB_avail_v31
Texte structuré
IMC(IMC_tag);
Opérandes
Bloc fonctionnel
Opérandes :
Type :
Format
Description :
IMC tag
INTERNAL MODEL CONTROL
Structure
Structure IMC
Texte structuré
Opérandes :
Type :
Format
Description :
IMC tag
INTERNAL MODEL CONTROL
Structure
Structure IMC
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
IMPORTANT: Chaque fois qu’un bloc APC détecte un changement au niveau de la variable de temps (DeltaT), ModelInit est exécuté. De ce fait, les blocs doivent uniquement être exécutés dans l’un des modes TimingModes pour lesquels DeltaT est constant.
  • TimingMode = 0 (périodique) tout en exécutant ces blocs fonctionnels dans une tâche périodique
  • TimingMode = 1 (sur-échantillonnage)
Dans les deux cas, si la durée de la tâche périodique est modifiée de manière dynamique, ou si OversampleDT est modifié de manière dynamique, le bloc exécute ModelInit.
Le réglage TimingMode suivant n’est pas recommandé en raison de gigues d’horloge dans DeltaT :
  • TimingMode = 0 (périodique) tout en exécutant ces blocs fonctionnels dans une tâche continue ou d’événement
  • TimingMode = 2 (RealTimeSample)
Structure
Paramètres d’entrée
Type de données
Description
Valeurs valides et par défaut
EnableIn
BOOL
Activez l'entrée. Si défini sur faux, le bloc fonctionnel n’est pas exécuté et les sorties ne sont pas mises à jour.
Valeur par défaut = VRAI
PV
REAL
Entrée de variable de traitement à l’échelle. Cette valeur est généralement lue depuis un module d’entrée analogique.
Valide = tout flottant
Par défaut = 0,0
PVFault
BOOL
Indicateur de mauvaise santé de PV. Si la lecture de PV se fait depuis une entrée analogique, PVFault est normalement placée sous le contrôle de l’état du défaut de cette entrée analogique.
Si PVFault est VRAI, il y a une erreur au niveau du module d'entrées. Le bit approprié est défini dans Status.
Valeur par défaut = FAUX
FAUX = Bonne santé
PVUEMax
REAL
Valeur à l’échelle maximale pour PV. La valeur de PV et SP qui correspond à 100 % de la plage de la variable de traitement. Si PVEUMax ≤ PVEUMin, le bit approprié est défini dans Status.
Valide = PVEUMin < PVEUMax ≤ flottant positif maximum
Par défaut = 100,0
PVUEMin
REAL
Valeur à l’échelle minimale pour PV. La valeur de PV et SP qui correspond à 0% de la plage de la variable de traitement. Si PVEUMax ≤ PVEUMin, le bit approprié est défini dans Status.
Valide = flottant négatif maximum ≤ PVEUMin < PVEUMax
Par défaut = 0,0
SPProg
REAL
Valeur programme SP, mise à l’échelle en unités PV. SP est programmée sur cette valeur dans le mode de contrôle Programme.
Si SPProg ou SPOper < SPLLimit ou > SPHLimit, définir le bit approprié dans Status et limitez la valeur utilisée pour le point de consigne SP.
Valide = de SPLLimit à SPHLimit
Par défaut = 0,0
SPOper
REAL
Valeur opérateur SP, mise à l’échelle en unités PV. SP est définie sur cette valeur en mode de contrôle Opérateur.
Si SPProg ou SPOper < SPLLimit ou > SPHLimit, définir le bit approprié dans Status et limitez la valeur utilisée pour le point de consigne SP.
Valide = de SPLLimit à SPHLimit
Par défaut = 0,0
SPCascade
REAL
Valeur Cascade SP, mise à l’échelle en unités PV. Si le mode CascadeRatio et UseRatio ont pour valeur FAUSSE, alors SP est défini sur cette valeur, ce sera généralement le CVEU d’une boucle primaire. Dans le mode CascadeRatio et lorsque UseRatio est VRAI, SP est programmée sur cette valeur multipliée par le Rapport.
Lorsque la valeur de SPCascade < SPLLimit ou > SPHLimit, définir ce bit dans Status et limitez la valeur utilisée pour SP.
Valide = de SPLLimit à SPHLimit
Par défaut = 0,0
SPHLimit
REAL
Valeur limite haute SP, mise à l’échelle en unités PV.
Si SPHLimit < SPLLimit ou si SPHLimit > PVEUMax, définissez le bit approprié dans Status.
Valide = de SPLLimit à PVEUMax
Par défaut = 100,0
SPLLimit
REAL
Valeur limite basse SP, mise à l’échelle en unités PV.
Si SPLLimit < PVEUMin ou si SPHLimit < SPLLimit, définir le bit approprié dans Status et limitez SP en utilisant la valeur de SPLLimit.
Valide = de PVEUMin à SPHLimit
Par défaut = 0,0
UseRatio
BOOL
Permet un contrôle permissif du rapport. Définir sur VRAI pour activer le contrôle du rapport dans le mode CascadeRatio.
Valeur par défaut = FAUX
RatioProg
REAL
Multiplicateur du programme Rapport, pas d’unités (par exemple, scalaires). Ratio et RatioOper sont programmées sur cette valeur en mode de contrôle Programme.
Lorsque RatioProg ou RatioOper < RatioLLimit ou > RatioHLimit, définir ce bit dans Status et limitez la valeur utilisée pour Rapport.
Valide = RatioLLimit à RatioHLimit
Par défaut = 1,0
RatioOper
REAL
Multiplicateur Rapport Opérateur, pas d’unités (par exemple, scalaires). Rapport est défini sur cette valeur dans le mode de contrôle Opérateur.
Lorsque RatioProg ou RatioOper < RatioLLimit ou > RatioHLimit, définir ce bit dans Status et limitez la valeur utilisée pour Rapport.
Valide = RatioLLimit à RatioHLimit
Par défaut = 1,0
RatioHLimit
REAL
Valeur limite haute du rapport, pas d’unités (par exemple, scalaires). Limite la valeur de Ratio obtenue à partir de RatioProg ou RatioOper.
Si RatioLLimit < 0, définir ce bit dans Status et limitez à zéro. Si RatioHLimit < RatioLLimit, définir ce bit dans Status et limitez le Rapport en utilisant la valeur de RatioLLimit.
Valide = RatioLLimit à la flottante positive maximale
Par défaut = 1,0
RatioLLimit
REAL
Valeur limite basse du rapport, pas d’unités (par exemple, scalaires). Limite la valeur de Ratio obtenue à partir de RatioProg ou RatioOper.
Si RatioLLimit < 0, définir ce bit dans Status et limitez à zéro. Si RatioHLimit < RatioLLimit, définir ce bit dans Status et limitez le Rapport en utilisant la valeur de RatioLLimit.
Valide = 0,0 à RatioHLimit
Par défaut = 1,0
CVFault
BOOL
Indicateur de mauvaise santé de la variable de contrôle. Si CVEU contrôle une sortie analogique, un défaut CVFault a normalement pour origine l’état défaut de la sortie analogique.
Si CVFault est VRAI, cela indique la présence d’une erreur sur le module de sortie, et ce bit est défini dans Status.
Valeur par défaut = FAUX
FAUX = Bonne santé
CVInitReq
BOOL
Demande d’initialisation de CV. Lorsque c’est VRAI, définir CVEU sur la valeur de CVInitValue. Ce signal va normalement être régulé par l’état In Hold du module de sortie analogique sous le contrôle de CVEU ou depuis la sortie InitPrimary d’une boucle IMC secondaire.
Valeur par défaut = FAUX
CVInitValue
REAL
Valeur d’initialisation de CVEU, mise à l’échelle en unités CVEU. Lorsque CVInitializing est VRAI, définir CVEU sur une valeur égale à CVInitValue et CV sur la valeur correspondante en pourcentage. CVInitValue va normalement provenir du retour de la sortie analogique régulée par CVEU ou du point de consigne d’une boucle secondaire. L’initialisation du bloc fonctionnel est désactivée lorsque CVFaulted ou CVEUSpanInv est VRAI (mauvais).
Valide = tout flottant
Par défaut = 0,0
CVProg
REAL
CV Valeur Programme-Manuel CV est programmée avec cette valeur en contrôle Programme et dans le mode Manuel.
Si la valeur de CVProg ou CVOper < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est VRAI, définir le bit unique de Status et la valeur limite utilisée pour CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVOper
REAL
CV Valeur mode Opérateur-Manuel. CV est programmée avec cette valeur en contrôle Opérateur et dans le mode Manuel. Si cet élément n’est pas dans le mode Opérateur-Manuel, définir CVOper sur la valeur de CV à la fin de chaque exécution de bloc fonctionnel.
Si la valeur de CVProg ou CVOper < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est VRAI, définir le bit unique de Status et la valeur limite utilisée pour CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVOverrideValue
REAL
Valeur d’outrepassement de CV. CV programmée sur cette valeur en mode Outrepassement.
Cette valeur doit correspondre à un état de sortie fiable de la boucle IMC. Si la valeur de CVOverrideValue est < 0 ou > 100, définir le bit unique de Status et la valeur limite utilisée pour CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVTrackValue
REAL
Valeur de suivi de la CV. Lorsque CVTrackReq est activé et lorsque le bloc fonctionnel IMC est dans le mode Manuel, il n’est pas tenu compte de la valeur CVTrackValue et le modèle interne IMC met à jour ses données historiques avec la valeur CVOper ou CVProg. Lorsque CVTrackReq est activé et lorsque le bloc fonctionnel IMC est dans le mode Auto, le modèle interne met à jour ses données historiques en se basant sur la valeur de CVTrackValue. Dans ce cas, la CV obtient l’autorisation de se déplacer, comme si le bloc fonctionnel IMC était encore en mesure de contrôler cette procédure. Cette valeur est utile dans des schémas de sélection à plusieurs boucles où vous souhaitez que le bloc fonctionnel IMC suive la sortie d’un algorithme de contrôle différent dans lequel vous connectez la sortie de l’algorithme de contrôle à CVTrackValue.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVManLimiting
BOOL
Demande de limite CV en mode Manuel. Si le mode Manuel et CVManLimiting sont définis sur VRAI, la CV va être limitée par les valeurs CVHLimit et CVLLimit.
Valeur par défaut = FAUX
CVEUMax
REAL
Valeur maximale de CVEU. La valeur de CVEU qui correspond à 100% de CV. Si CVEUMax = CVEUMin, définir ce bit dans Status.
Valide = tout flottant
Par défaut = 100,0
CVEUMin
REAL
Valeur minimale de CVEU. La valeur de CVEU qui correspond à 0% de CV. Si CVEUMax = CVEUMin, définir ce bit dans Status.
Valide = tout flottant
Par défaut = 0,0
CVHLimit
REAL
Valeur limite haute de CV. Cette limite est utilisée pour définir la sortie CVHAlarm. Elle permet également de limiter CV en mode Auto ou CascadeRatio, voire en mode Manuel si CVManLimiting est défini sur VRAI.
Si CVLLimit < 0, si CVHLimit > 100, si CVHLimit < CVLLimit, définir ce bit dans Status. Si CVHLimit < CVLLimit, limitez CV en faisant appel à la valeur de CVLLimit.
Valide = CVLLimit < CVHLimit ≤ 100,0
Par défaut = 100,0
CVLLimit
REAL
Valeur limite basse de CV. Cette limite est utilisée pour définir la sortie CVLAlarm. Elle permet également de limiter CV en mode Auto ou CascadeRatio, voire en mode Manuel si CVManLimiting est défini sur VRAI.
Si CVLLimit < 0, si CVHLimit > 100, si CVHLimit < CVLLimit, définir ce bit dans Status.
Si CVHLimit < CVLLimit, limitez CV en faisant appel à la valeur de CVLLimit.
Valide = 0,0 ≤ CVLLimit < CVHLimit
Par défaut = 0,0
CVROCPosLimit
REAL
CV Augmentation de la fréquence de changement, en pourcentage par seconde.
La limitation de la fréquence de changement est uniquement utilisée en modes Auto ou CascadeRatio, voire en mode Manuel si CVManLimiting est défini sur VRAI.
Une valeur égale à zéro désactive la limitation ROC de CV.
Si la valeur de CVROCPOSLimit < 0, définir ce bit dans le mode État et désactivez la limitation ROC de CV.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
CVROCNegLimit
REAL
CV Diminution de la limite de la fréquence de changement, en pourcentage par seconde.
La limitation de la fréquence de changement est uniquement utilisée en modes Auto ou CascadeRatio, voire en mode Manuel si CVManLimiting est défini sur VRAI.
Une valeur égale à zéro désactive la limitation ROC de CV.
Si la valeur de CVROCNegLimit < 0, définir ce bit dans le mode État et désactivez la limitation ROC de CV.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
HandFB
REAL
CV valeur de HandFeedback. CV programmée sur cette valeur dans le mode Portable et lorsque HandFBFault est FAUX (bonne santé). Cette valeur provient en général de la sortie d’une station manuelle/automatique implantée sur le terrain et sert à créer un processus sans à-coups de sortie du mode Portable.
Si la valeur de HandFB est < 0 ou > 100, définir le bit unique de Status et la valeur limite utilisée pour CV.
Valide = 0,0…100,0
Par défaut = 0,0
HandFBFault
BOOL
Indicateur de mauvaise santé de la valeur de HandFB. Si la valeur HandFB se lit depuis une entrée analogique, HandFBFault va normalement dépendre de l’état occupé par le canal d’entrée analogique.
Si HandFBFault est VRAI, cela indique la présence d’une erreur sur le module d’entrée, et ce bit est défini dans Status.
Valeur par défaut = FAUX
FAUX = Bonne santé
WindupHIn
BOOL
Demande de haut de la saturation d’intégrale. Lorsque c’est VRAI, CV n’a pas l’autorisation requise pour augmenter sa valeur. En général, ce signal est la sortie WindupHOut provenant d’une boucle secondaire.
Valeur par défaut = FAUX
WinduplIn
BOOL
Demande de bas de la saturation d’intégrale. Lorsque c’est VRAI, CV n’a pas l’autorisation requise pour diminuer sa valeur. En général, ce signal est la sortie WindupLOut provenant d’une boucle secondaire.
Valeur par défaut = FAUX
GainEUSpan
BOOL
Unités ModelGain représentées en EU ou en % de la plage.
Unités CV ModelGain représentées en EU ou en % de la plage. Définir pour interpréter ModelGain en EU, réinitialiser pour interpréter ModelGain en % de la plage.
Valeur par défaut = FAUX
VRAI = Gain en EU
FAUX = Gain en % de la plage
ProcessGainSign
BOOL
Ne s’utilise que lors du réglage automatique. Signe du gain de traitement (Delta PV/Delta CV).
Définir pou indiquer un gain de traitement négatif (l’augmentation de la sortie génère une diminution de la PV).
Réinitialiser pour indiquer un gain de traitement positif (l’augmentation de la sortie génère une augmentation de la PV).
Valeur par défaut = FAUX
ProcessType
DINT
Sélection du type de traitement (1=Intégrateur, 0=Non-intégrateur)
Par défaut = 0
ModelGain
REAL
Le paramètre de gain du modèle interne. Entrez un gain positif ou négatif basé sur la direction du traitement.
Valide = valeur négative à virgule flottante maximale −> valeur positive à virgule flottante maximale
Par défaut = 0,0
ModelTC
REAL
La constante de temps du modèle interne, en secondes.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
ModelDT
REAL
Le temps mort du modèle interne, en secondes.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
RespTC
REAL
Le paramètre de réglage déterminant la vitesse de l’action variable de contrôle, en secondes.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
PVTracking
BOOL
Demande de suivi de PV par SP. Définir sur VRAI pour activer à SP de suivre PV. Il n’en est pas tenu compte dans les modes CascadeRatio ou Auto.
Valeur par défaut = FAUX
CVTrackReq
BOOL
Demande de suivi de la CV. Définir sur vrai pour activer le suivi de la CV lorsque le réglage automatique est défini sur OFF. Il n’en est pas tenu compte dans les modes Portable et Outrepassement.
Valeur par défaut = FAUX
AllowCasRat
BOOL
Permet au mode CascadeRatio d’être permissif. Définir sur VRAI pour permettre la sélection du mode CascadeRatio en faisant appel à ProgCasRatReq ou à OperCasRatReq.
Valeur par défaut = FAUX
ManualAfterInit
BOOL
Mode manuel après demande d’initialisation.
Lorsque cette option est VRAIE, le bloc fonctionnel est placé en mode manuel si CVInitializing est défini sur VRAI, à moins que le mode en cours ne soit Outrepassement ou Portable.
Lorsque ManualAfterInit est FAUX, le mode du bloc fonctionnel ne change pas.
Valeur par défaut = FAUX
ProgProgReq
BOOL
Demande de contrôle Programme du programme.
Définir sur VRAI par le programme de l’utilisateur pour demander un contrôle du programme. Ignoré si ProgOperReq est VRAI. Le maintien de cet élément sur VRAI et de ProgOperReq sur FAUX peut se faire pour verrouiller le bloc fonctionnel dans le mode de contrôle du programme.
Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgOperReq
BOOL
Demande de contrôle Opérateur du programme. Définir sur VRAI par le programme de l’utilisateur pour demander un contrôle par l’opérateur. Le maintien de cet élément sur VRAI peut se faire pour verrouiller le bloc fonctionnel dans le mode de contrôle par l’opérateur. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgCasRatReq
BOOL
Programme - Demande de mode Cascade/Rapport. Définir sur VRAI par le programme de l’utilisateur pour demander le mode Cascade/Rapport. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgAutoReq
BOOL
Demande de mode Auto du programme. Définir sur VRAI par le programme de l’utilisateur pour demander le mode Auto. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgManualReq
BOOL
Demande de mode Manuel du programme. Définir sur VRAI par le programme de l’utilisateur pour demander le mode Manuel. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgOverrideReq
BOOL
Demande de mode Outrepassement du programme. Définir sur VRAI par le programme de l’utilisateur pour demander le mode Outrepassement. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
ProgHandReq
BOOL
Demande de mode Portable du programme. Définir sur VRAI par le programme de l’utilisateur pour demander le mode Portable. En général, cette valeur se lit en tant qu’entrée numérique provenant d’une station Portable/Auto. Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise l’entrée qui devient alors FAUX.
Valeur par défaut = FAUX
OperProgReq
BOOL
Demande de contrôle Programme de l’opérateur. Définir sur VRAI par l’interface opérateur pour demander un contrôle du programme. Le bloc fonctionnel réinitialise ce paramètre sur FAUX.
Valeur par défaut = FAUX
OperOperReq
Demande de contrôle Opérateur de l’opérateur. Définir sur VRAI par l’interface opérateur pour demander un contrôle par l’opérateur. Le bloc fonctionnel réinitialisera ce paramètre sur FAUX.
Valeur par défaut = FAUX
OperCasRatReq
BOOL
Opérateur - Demande de mode CascadeRapport. Définir sur VRAI par l’interface opérateur pour demander le mode CascadeRapport. Le bloc fonctionnel réinitialisera ce paramètre sur FAUX.
Valeur par défaut = FAUX
OperAutoReq
BOOL
Demande de mode Auto de l’opérateur. Définir sur VRAI par l’interface opérateur pour demander le mode Auto. Le bloc fonctionnel réinitialisera ce paramètre sur FAUX.
Valeur par défaut = FAUX
OperManualReq
BOOL
Demande de mode Manuel de l’opérateur. Définir sur VRAI par l’interface opérateur pour demander le mode Manuel. Le bloc fonctionnel réinitialisera ce paramètre sur FAUX.
Valeur par défaut = FAUX
ProgValueReset
BOOL
Réinitialiser les valeurs de contrôle du programme. Lorsqu’elles sont VRAIES, les entrées Prog_xxx_Req sont réinitialisées sur FAUX.
Lorsqu’elles sont VRAIES et qu’il y a contrôle du programme, définir SPProg sur une valeur égale à SP et CVProg sur une valeur égale à CV.
Lorsque ProgValueReset est VRAI, le bloc fonctionnel réinitialise ce paramètre qui devient alors FAUX.
Valeur par défaut = FAUX
TimingMode
DINT
Sélectionne le mode d’exécution Base de temps.
Valeur/Description
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 = 0…2
Par défaut = 0
OverSampleDT
REAL
Temps d’exécution du mode Sur-échantillonnage.
Valide = 0 à max. Temps écoulé TON_Timer (4194,303 secondes)
Par défaut = 0
RTSTime
DINT
Période de mise à jour du module pour le mode Échantillon en temps réel.
Valide = de 1 à 32 767
1 comptage = 1 ms
RTSTimeStamp
DINT
Valeur de l’horodatage du module pour le mode Échantillon en temps réel.
Valide = de 0 à 32 767
(redémarrage de 32 767 à 0)
1 comptage = 1 ms
PVTuneLimit
REAL
Limite de réglage PV mise à l’échelle dans les unités PV. Lorsque le réglage automatique est en cours d’exécution et que la PV prévue dépasse cette limite, le réglage est annulé.
Plage : tout nombre flottant
Valeur par défaut = 0
AtuneTimeLimit
REAL
Durée maximale d’exécution du réglage automatique à la suite d’une modification d’étape CV. Lorsque le réglage automatique dépasse cette durée, le réglage est annulé.
Plage valide : tout nombre flottant > 0.
Valeur par défaut = 60 minutes
NoiseLevel
DINT
Une estimation du niveau de bruit prévu sur la PV afin de le compenser pendant le réglage.
Les sélections sont les suivantes : 0 = bas, 1 = moyen, 2 = haut
Plage : de 0 à 2
Valeur par défaut = 1
CVStepSize
REAL
Taille de l’incrément CV en pourcentage lors du test de réglage de l’incrément. La taille de l’incrément est directement ajoutée à CV en tenant compte de la limite haute ou de la limite basse.
Plage : -100% … 100%
Valeur par défaut = 10%
ResponseSpeed
DINT
Vitesse souhaitée de la réponse en boucle fermée.
Réponse lente : ResponseSpeed=0
Réponse moyenne : ResponseSpeed=1
Réponse rapide : ResponseSpeed=2.
Si ResponseSpeed est inférieure à 0, l’option Vitesse lente est utilisée. Si ResponseSpeed est supérieure à 2, l’option Vitesse rapide est utilisée.
Plage : de 0 à 2
Valeur par défaut = 1
ModelInit
BOOL
Interrupteur d’initialisation de modèle interne.
Valeur par défaut = FAUX
Factor
REAL
Facteur d’approximation de modèle non-intégrateur. S’utilise uniquement pour l’intégration des types de traitement.
Par défaut = 100
AtuneStart
BOOL
Demande de démarrage du réglage automatique. Définir sur Vrai pour démarrer le réglage automatique du bloc fonctionnel. Demande ignorée lorsqu’IMC n’est pas en mode Manuel. Le bloc fonctionnel réinitialisera ce paramètre sur FAUX.
Valeur par défaut = FAUX
AtuneUseModel
BOOL
Utiliser la demande du modèle de réglage automatique. Définir sur Vrai pour remplacer les paramètres du modèle actuel par les paramètres calculés du modèle de réglage automatique. Le bloc fonctionnel programme le paramètre d’entrée sur FAUX.
Valeur par défaut = FAUX
AtuneAbort
BOOL
Demande d’abandon du réglage automatique. Définir sur Vrai pour abandonner le réglage automatique du bloc fonctionnel IMC. Le bloc fonctionnel programme le paramètre d’entrée sur FAUX.
Valeur par défaut = FAUX
Paramètres de sortie
Type de données
Description
Valeurs valides et par défaut
EnableOut
BOOL
Indique si l'instruction est activée. Défini sur faux en cas de débordement de CVEU.
CVEU
REAL
Sortie de variable de contrôle mise à l’échelle. Mise à l’échelle faisant appel à CVEUMax et CVEUMin, où CVEUMax correspond à 100% et CVEUMin correspond à 0%. En général, cette sortie s’utilise pour contrôler un module de sortie analogique ou une boucle secondaire.
CVEU = (CV * CVEUSpan/100) + CVEUMin
Calcul de la plage CVEU : CVEUSpan = (CVEUMax − CVEUMin)
CV
REAL
Sortie de variable de contrôle. Cette valeur s’exprime toujours sous le format 0…100%. CV est limitée par CVHLimit et CVLLimit dans le mode Auto, dans le mode CascadeRapport ou dans le mode Manuel, à condition que CVManLimiting soit VRAI ; sinon, elle est limitée par 0 et 100%.
DeltaCV
REAL
Différence entre la CV actuelle et la CV précédente (CV actuelle - CV précédente).
CVInitializing
BOOL
Indicateur de mode d’initialisation. Définir sur VRAI lorsque CVInitReq ou FirstScan du bloc fonctionnel est sur VRAI, ou sur une transition de VRAI à FAUX de CVFault (mauvais à bon). CVInitializing est programmée sur FAUX après l’initialisation du bloc fonctionnel et lorsque CVInitReq n’est plus VRAI.
CVHAlarm
BOOL
Indicateur d’alarme haute de CV. TRUE lorsque la valeur calculée pour CV > 100 ou CVHLimit.
CVLAlarm
BOOL
Indicateur d’alarme basse de CV. VRAI lorsque la valeur calculée pour CV < 0 ou CVLLimit.
CVROCPosAlarm
BOOL
Indicateur d’alarme de fréquence de changement de CV. VRAI lorsque la fréquence calculée de changement de CV dépasse CVROCPosLimit.
CVROCNegAlarm
REAL
Indicateur d’alarme de fréquence de changement de CV. VRAI lorsque la fréquence calculée de changement de CV dépasse CVROCNegLimit.
SP
REAL
Valeur actuelle du point de consigne. La valeur de SP sert à contrôler CV dans le mode Auto, le mode CascadeRapport ou le mode Suivi de PV, mise à l’échelle en unités PV.
SPPercent
REAL
La valeur de SP s’exprime en pourcentage de la plage de PV.
SPPercent = ((SP − PVEUMin ) * 100)/PVSpan
Où
PVSpan = PVEUMax − PVEUMin
SPHAlarm
BOOL
Indicateur d’alarme haute de SP. VRAI lorsque la SP ≥ SPHLimit.
SPLAlarm
BOOL
Indicateur d’alarme basse de SP. VRAI lorsque la SP ≤ SPLLimit.
PVPercent
REAL
PV s’exprime en pourcentage de la plage.
PVPercent = (( PV − PVEUMin ) * 100)/PVSpan
Calcul de la plage de PV : PVSpan =
( PVEUMax − PVEUMin )
E
REAL
Erreur de procédé. Différence entre SP et PV, mise à l’échelle en unités PV.
EPercent
REAL
Cette erreur s’exprime en pourcentage de la plage.
InitPrimary
BOOL
Initialiser la commande de boucle primaire. VRAI en dehors du mode CasRat ou lorsque CVInitializing est VRAI. Normalement, ce signal devrait être utilisé par l’entrée CVInitReq d’une boucle primaire.
WindupHOut
BOOL
Indicateur haut de la saturation d’intégrale. VRAI lorsque la limite haute de SP ou la limite haute ou basse de CV est atteinte. En général, ce signal va être exploité par l’entrée WindupHIn pour limiter la saturation d’intégrale de la sortie CV sur une boucle primaire.
WindupLOut
BOOL
Indicateur bas de la saturation d’intégrale. VRAI lorsque la limite haute ou basse de SP ou de CV est atteinte. En général, ce signal va être exploité par l’entrée WindupLIn pour limiter la saturation d’intégrale de la sortie CV sur une boucle primaire.
Ratio
REAL
Multiplicateur actuel de rapport, pas d’unités.
RatioHAlarm
BOOL
Indicateur d’alarme haute de rapport. VRAI lorsque Rapport > RatioHLimit.
RatioLAlarm
BOOL
Indicateur d’alarme basse de rapport. VRAI lorsque Rapport < RatioLLimit.
ProgOper
BOOL
Indicateur de contrôle programme/opérateur. VRAI dans le mode de contrôle Programme. FAUX dans le mode de contrôle Opérateur.
CasRat
BOOL
Indicateur du mode CascadeRapport. VRAI dans le mode CascadeRapport.
Auto
BOOL
Indicateur de mode Auto. VRAI dans le mode Auto.
Manual
BOOL
Indicateur de mode Manuel. VRAI dans le mode Manuel.
Override
BOOL
Indicateur de mode Outrepassement. VRAI dans le mode Outrepassement .
Hand
BOOL
Indicateur de mode Portable. VRAI dans le mode Portable.
DeltaT
REAL
Temps écoulé entre deux mises à jour (en secondes).
StepSizeUsed
REAL
Taille réelle de l’incrément de CV lors du réglage.
GainTuned
REAL
La valeur calculée du gain du modèle interne, une fois le réglage terminé.
TCTuned
REAL
La valeur calculée de la constante de temps du modèle interne, une fois le réglage terminé.
DTTuned
REAL
La valeur calculée du temps mort du modèle interne, une fois le réglage terminé.
RespTCTunedS
REAL
La valeur calculée de la constante de temps de la variable de contrôle en vitesse de réponse lente, une fois le réglage terminé.
RespTCTunedM
REAL
La valeur calculée de la constante de temps de la variable de contrôle en vitesse de réponse moyenne, une fois le réglage terminé.
RespTCTunedF
REAL
La valeur calculée de la constante de temps de la variable de contrôle en vitesse de réponse rapide, une fois le réglage terminé.
AtuneOn
BOOL
Définir sur Vrai lorsque le réglage automatique a été activé.
AtuneDone
BOOL
Définir sur Vrai lorsque le réglage automatique a été exécuté avec succès.
AtuneAborted
BOOL
Définir sur Vrai lorsque le réglage automatique a été abandonné par l’utilisateur ou en raison d’erreurs survenues pendant l’opération de réglage automatique.
AtuneStatus
DINT
Indique l’état de réglage de bloc.
AtuneFault
BOOL
Le réglage automatique a provoqué l’un des défauts suivants.
Bit 0 d’AtuneStatus
AtunePVOutOfLimit
BOOL
PV ou la prédiction de l’incrément de temps mort de PV dépasse la limite PVTuneLimit pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique est abandonné.
Bit 1 d’AtuneStatus
AtuneModeInv
BOOL
Le mode IMC n’était pas Manuel au début du réglage automatique ou le mode IMC a changé et n’était plus le mode Manuel pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique n’est pas entamé ou est abandonné.
Bit 2 d’AtuneStatus
AtuneCVWindupFault
BOOL
WindupHIn ou WindupLIn est Vrai au début du réglage automatique ou pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique n’est pas entamé ou est abandonné.
Bit 3 d’AtuneStatus
AtuneStepSize0
BOOL
StepSizeUsed = 0 au début du réglage automatique. Lorsque c’est Vrai, le réglage automatique n’est pas entamé.
Bit 4 d’AtuneStatus
AtuneCVLimitsFault
BOOL
CVLimitsInv et CVManLimiting sont Vrais au début du réglage automatique ou pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique n’est pas entamé ou est abandonné.
Bit 5 d’AtuneStatus
AtuneCVInitFault
BOOL
CVInitializing est Vrai au début du réglage automatique ou pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique n’est pas entamé ou est abandonné.
Bit 6 d’AtuneStatus
AtuneEUSpanChanged
BOOL
CVEUSpan ou PVEUSpan change pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique est abandonné.
Bit 7 d’AtuneStatus
AtuneCVChanged
BOOL
CVOper change dans le mode de contrôle Opérateur ou CVProg change dans le mode de contrôle Programme ou CV devient haut/bas ou ROC est limitée pendant le réglage automatique. Lorsque c’est Vrai, le réglage automatique est
abandonné.
Bit 8 d’AtuneStatus
AtuneTimeout
BOOL
Le temps écoulé est plus long que la limite de temps de réglage AtuneTimeLimit depuis le début du test portant sur l’incrément. Lorsque c’est Vrai, le réglage automatique est abandonné.
Bit 9 d’AtuneStatus
AtunePVNotSettled
BOOL
Le changement de PV est trop important et ne permet pas d’effectuer le réglage automatique. Lorsque c’est Vrai, le réglage automatique est abandonné. Attendre que PV soit plus stable avant d’effectuer le réglage automatique.
Bit 10 d’AtuneStatus
Status1
DINT
État mappé par bits du bloc fonctionnel.
Status2
DINT
État supplémentaire mappé par bits du bloc fonctionnel.
InstructFault
BOOL
Le bloc fonctionnel a généré un défaut. Indique l’état des bits avec Status1 et status2.
Une valeur égale à 0 indique qu’aucun défaut ne s’est produit. Tout paramètre qui pourrait avoir été configuré avec une valeur incorrecte doit avoir un paramètre statut indiquant son statut incorrect.
Bit 0 de Status1
PVFaulted
BOOL
Mauvaise santé de la variable de procédé PV.
Bit 1 de Status1
CVFaulted
BOOL
Défaut de la variable de contrôle (CV)
Bit 2 de Status1
HandFBFaulted
BOOL
Mauvaise santé de la valeur HandFB
Bit 3 de Status1
PVSpanInv
BOOL
La plage de PV est incorrecte, PVEUMax < PVEUMin.
Bit 4 de Status1
SPProgInv
BOOL
SPProg < SPLLimit ou > SPHLimit. Valeur limite utilisée pour SP.
Bit 5 de Status1
SPOperInv
BOOL
SPOper < SPLLimit ou > SPHLimit. Valeur limite utilisée pour SP.
Bit 6 de Status1
SPCascadeInv
BOOL
SPCascade < SPLLimit ou > SPHLimit. Valeur limite utilisée pour SP.
Bit 7 de Status1
SPLimitsInv
BOOL
Limites incorrectes : SPLLimit < PVEUMin, SPHLimit > PVEUMax ou SPHLimit < SPLLimit. Si SPHLimit < SPLLimit, limiter la valeur en faisant appel à SPLLimit.
Bit 8 de Status1
RatioLimitsInv
BOOL
Limites hautes et basses incorrectes de Rapport, limite basse < 0 ou limite haute < limite basse.
Bit 9 de Status1
RatioProgInv
BOOL
RatioProg < RatioLLimit ou > RatioHLimit. Valeur limite utilisée pour Rapport.
Bit 10 de Status1
RatioOperInv
BOOL
RatioOper < RatioLLimit ou > RatioHLimit. Valeur limite utilisée pour Rapport.
Bit 11 de Status1
CVProgInv
BOOL
CVProg < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est VRAI. Valeur limite utilisée pour CV.
Bit 12 de Status1
CVOperInv
BOOL
CVOper < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est VRAI. Valeur limite utilisée pour CV.
Bit 13 de Status1
CVOverrideValueInv
BOOL
CVOverrideValue < 0 ou > 100. Valeur limite utilisée pour CV.
Bit 14 de Status1
CVTrackValueInv
BOOL
CVTrackValue < 0 ou > 100. Valeur limite utilisée pour CV.
Bit 15 de Status1
CVEUSpanInv
BOOL
La plage de CVEU est incorrecte, CVEUMax égale CVEUMin.
Bit 16 de Status1
CVLimitsInv
BOOL
CVLLimit < 0, CVHLimit > 100 ou CVHLimit <= CVLLimit. Si CVHLimit < CVLLimit, limitez CV en faisant appel à CVLLimit.
Bit 17 de Status1
CVROCLimitInv
BOOL
CVROCLimit < 0, désactive la limitation ROC.
Bit 18 de Status1
HandFBInv
BOOL
HandFB < 0 ou > 100. Valeur limite utilisée pour CV.
Bit 19 de Status1
SampleTimeTooSmall
BOOL
Temps mort/DeltaT du modèle doit être inférieur ou égal à 200.
Bit 20 de Status1
FactorInv
BOOL
Facteur < 0.
Bit 21 de Status1
ModuleGainInv
BOOL
ModelGain est égal à 1.#QNAN ou -1.#IND (Pas un nombre) ou ±1.$ ( Infinité ∞)
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 incorrect. Si le mode actuel n’est pas Outrepassement ou Portable, définir sur mode Manuel.
Bit 27 de Status2
RTSMissed
BOOL
Ne s’utilise que dans le mode Échantillon en temps réel. Est VRAI (TRUE) lorsqu’ABS(DeltaT – RTSTime) > 1 milliseconde.
Bit 28 de Status2
RTSTimeInv
BOOL
RTSTime incorrect.
Bit 29 de Status2
RTSTimeStampInv
BOOL
RTSTimeStamp incorrect. Si le mode actuel n’est pas Outrepassement ou Portable, définir sur mode Manuel.
Bit 30 de Status2
DeltaTInv
BOOL
DeltaT incorrect. Si le mode actuel n’est pas Outrepassement ou Portable, définir sur mode Manuel.
Bit 31 de Status2
Description
L’illustration suivante montre la configuration du bloc fonctionnel IMC.
IMC Description
Lors de chaque exécution, le bloc fonctionnel IMC compare la valeur mesurée réelle PV à la prédiction pour PV. Le résultat s’appelle une estimation de perturbation qui correspond à l’effet qu’ont des perturbations non mesurées de traitement associées à l’imprécision de la modélisation. Cette estimation de perturbation sert d’écart en ce qui concerne le point de consigne de la variable de contrôle. Dans le cas idéal, c’est-à-dire sans perturbation et avec une modélisation parfaite, l’estimation de perturbation (le signal de retour) est égale à zéro.
Modèle du premier ordre
M = K/(T*s+1)*exp(-D*s)
Inverse du modèle
Inv = (T*s+1)/K
Filtre du premier ordre
F = 1/(e*s+1)
Prédiction de PV = exp(-D*s)/(e*s+1) * (SP - Dist. estimée)
K...
Gain du modèle
T...
Constante de temps du modèle
D...
Temps mort du modèle
e...
Constante de temps de réponse
s...
Variable de Laplace
Le bloc fonctionnel calcule alors la valeur CV (CVHLimit, CVLLimit et des limites de fréquence de changement sont imposées) et la prédiction pour PV.
Le bloc fonctionnel IMC peut remplacer un bloc fonctionnel PID, ce qui présente un avantage par rapport à la variable de contrôle PID lors du contrôle de traitements qui ont des temps morts importants.
Lors d’un type de procédé à intégration (avec, par exemple, un contrôle des niveaux et un contrôle de la position), un modèle interne sans intégration est exploité pour représenter de façon approximative la procédure d’intégration. Le paramètre Factor s’utilise pour convertir le modèle identifié de procédure d’intégration qui est exploité lors du calcul de la CV. Il s’agit de la condition requise pour bénéficier d’une exécution stable du IMC.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Bloc fonctionnel
Condition/état
Action entreprise
Préscrutation
Les bits EnableIn et EnableOut sont définis sur faux.
Tag.EnableIn est faux
Les bits EnableIn et EnableOut sont définis sur faux.
Tag.EnableIn est vrai
Les bits EnableIn et .EnableOut sont définis sur vrai.
L'instruction s'exécute.
Première exécution de l'instruction
N/A
Première scrutation de l'instruction
N/A
Post-scrutation
Les bits EnableIn et EnableOut sont définis sur faux.
Texte structuré
Condition/état
Action entreprise
Préscrutation
Reportez-vous à Pré-scrutation dans le tableau Bloc fonctionnel.
Exécution normale
Reportez-vous à Tag.EnableIn est vrai dans le tableau Bloc fonctionnel.
Post-scrutation
Reportez-vous à Post-scrutation dans le tableau Bloc fonctionnel.
Exemples
Bloc fonctionnel
IMC_FB_ex_v31
Texte structuré
imcTag.PV := imcInput1;
imcTag.SPProg := imcInput2;
imcTag.CVProg := imcInput3;
IMC(imcTag);
imcOutput1 := imcTag.CVEU;
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal