PID amélioré (PIDE)

Ces informations s’appliquent aux automates
CompactLogix
 5370,
ControlLogix
 5570,
CompactLogix
 5380 et
ControlLogix
 5580.
NOTE: L’instruction PIDE n’est pas prise en charge dans les applications de sécurité ni sur les automates ControlLogix 5590. Pour les projets sur les automates ControlLogix 5590, remplacez l’instruction PPID. Voir
Directives de remplacement : Automates Logix 5000
(publication 1756-RM100) pour obtenir des informations sur la migration de projets pour une utilisation avec des automates ControlLogix 5590.
L'instruction PID amélioré (Enhanced PID, PIDE) propose des fonctions plus perfectionnées que l’instruction PID standard. Elle utilise la forme de vitesse de l’algorithme de PID. Les conditions de gain sont appliqués à la modification de la valeur d’erreur de PV, pas à la valeur d’erreur de PV.
Langues disponibles
Diagramme à relais
Cette instruction n’est pas disponible dans un diagramme à relais.
Bloc fonctionnel
PIDE_FB_avail_v31
Texte structuré
PIDE(PIDE_tag);
Opérandes
Bloc fonctionnel
Opérande
Type
Format
Description
Balise PIDE
PID_ENHANCED
structure
Structure PIDE
autotune tag
PIDE_AUTOTUNE
structure
(facultatif)
Structure du réglage automatique
Texte structuré
Opérande
Type
Format
Description
Balise PIDE
PID_ENHANCED
structure
Structure PIDE
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Structure PIDE
Paramètre d’entrée
Type de données
Description
EnableIn
BOOL
Activez l'entrée. Si défini sur faux, l’instruction n’est pas exécutée et les sorties ne sont pas mises à jour.
La valeur par défaut est définie sur 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 PV est lu à partir d’une entrée analogique, PVFault est contrôlé normalement par l’état du défaut de l’entrée analogique. Lorsque PVFault est défini sur vrai, cela indique que le signal d'entrée présente une erreur.
La valeur par défaut est fausse = bonne santé.
PVEUMax
REAL
Valeur à l’échelle maximale pour PV. La valeur de PV et SP qui correspond à 100 % de la plage de la variable de procédé.
Valide = PVEUMin < PVEUMax Less than or equal to valeur flottante positive maximale
Par défaut = 100,0
PVEUMin
REAL
Valeur à l’échelle minimale pour PV. La valeur de PV et SP qui correspond à 0 % de la plage de la variable de procédé.
Valide = valeur flottante négative maximale Less than or equal to PVEUMin < PVEUMax
Par défaut = 0,0
SPProg
REAL
Valeur programme SP, mise à l’échelle en unités PV. SP est défini sur cette valeur en contrôle Programme et en dehors du mode Cascade/Rapport. Si la valeur de SPProg < SPLLimit ou > SPHLimit, l’instruction définit le bit approprié dans Status et limite la valeur utilisée pour 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éfini sur cette valeur en contrôle Opérateur et en dehors du mode Cascade/Rapport. Si la valeur de SPOper < SPLLimit ou > SPHLimit, l’instruction définit le bit approprié dans Status et limite la valeur utilisée pour SP.
Valide = de SPLLimit à SPHLimit
Par défaut = 0,0
SPCascade
REAL
Valeur Cascade SP, mise à l’échelle en unités PV. Si CascadeRatio est défini sur vrai et que UseRatio est défini sur faux, alors SP = SPCascade. Cela correspond généralement au CVEU d’une boucle primaire. Si CascadeRatio et UseRatio sont définis sur vrai, alors SP = (SPCascade x Ratio). Si la valeur de SPCascade < SPLLimit ou > SPHLimit, définissez le bit approprié 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 > PVEUMax, l’instruction définit 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, l’instruction définit le bit approprié dans Status. Si SPHLimit < SPLLimit, l’instruction définit le bit approprié dans Status et limite 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éfini sur vrai pour activer le contrôle de rapport en mode Cascade/Rapport.
La valeur par défaut est fausse.
RatioProg
REAL
Multiplicateur programme Rapport. Ratio et RatioOper sont définis égaux à cette valeur en mode contrôle Programme. Si RatioProg < RatioLLimit ou > RatioHLimit, l’instruction définit le bit approprié dans Status et limite la valeur utilisée pour Ratio.
Valide = RatioLLimit à RatioHLimit
Par défaut = 1,0
RatioOper
REAL
Multiplicateur opérateur Rapport. Ratio est défini égal à cette valeur en mode contrôle Opérateur. Si RatioOper < RatioLLimit ou > RatioHLimit, l’instruction définit le bit approprié dans Status et limite la valeur utilisée pour Ratio.
Valide = RatioLLimit à RatioHLimit
Par défaut = 1,0
RatioHLimit
REAL
Valeur limite haute de rapport. Limite la valeur de Ratio obtenue à partir de RatioProg ou RatioOper. Si RatioHLimit < RatioLLimit, l’instruction définit le bit approprié dans Status et limite Ratio en utilisant la valeur de RatioLLimit.
Valide = RatioLLimit à la flottante positive maximale
Par défaut = 1,0
RatioLLimit
REAL
Valeur limite basse de rapport. Limite la valeur de Ratio obtenue à partir de RatioProg ou RatioOper. Si RatioLLimit < 0, l’instruction définit le bit approprié dans Status et limite la valeur à zéro. Si RatioHLimit < RatioLLimit, l’instruction définit le bit approprié dans Status et limite Ratio 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, CVFault provient normalement de l’état du défaut de l’entrée analogique. Lorsque ce paramètre est défini sur vrai, CVFault indique une erreur sur le module de sortie et l'instruction définit le bit approprié dans Status.
La valeur par défaut est fausse = bonne santé.
CVInitReq
BOOL
Demande d’initialisation de CV. Ce signal est normalement contrôlé par le statut Maintien sur le module de sortie analogique contrôlé par CVEU ou à partir de la sortie InitPrimary d’une boucle PID secondaire.
La valeur par défaut est fausse.
CVInitValue
REAL
Valeur d’initialisation de CVEU, mise à l’échelle en unités CVEU. Lorsque CVInitializing est défini sur vrai, CVEU = CVInitValue et CV est égal à la valeur du pourcentage correspondant. CVInitValue provient du retour de la sortie analogique contrôlée par CVEU ou du point de consigne d’une boucle secondaire. L’initialisation de cette instruction est désactivée lorsque CVFaulted ou CVEUSpanInv est vrai.
Valide = tout flottant
Par défaut = 0,0
CVProg
REAL
Valeur Manuel programme de CV. CV est égal à cette valeur en mode Manuel programme. Si CVProg < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est défini sur vrai, l'instruction définit le bit approprié dans Status et limite la valeur CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVOper
REAL
Valeur Manuel opérateur de CV. CV est égal à cette valeur en mode Manuel opérateur. En dehors du mode Manuel opérateur, l’instruction définit CVOper = CV à la fin de chaque exécution de l’instruction. Si CVOper < 0 ou > 100, ou < CVLLimit ou > CVHLimit lorsque CVManLimiting est défini sur vrai, l'instruction définit le bit approprié dans Status et limite la valeur CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVOverride
REAL
Valeur d’outrepassement de CV. CV est égal à cette valeur en mode Outrepassement. Cette valeur doit correspondre à un état de sortie fiable de la boucle PID. Si CVOverride < 0 ou > 100, l’instruction définit le bit approprié dans Status et limite la valeur CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVPrevious
REAL
Valeur CV
n-1
. Si CVSetPrevious est défini, CV
n-1
est égal à cette valeur. CV
n-1
est la valeur de CV de l'exécution précédente. CVPrevious est ignoré en mode Manuel, Outrepassement ou Portable ou lorsque CVInitializing est défini. Si CVPrevious < 0 ou > 100, ou < CVLLimit ou > CVHLimit en mode Auto ou Cascade/Rapport, l’instruction définit le bit approprié dans Status et limite la valeur CVn-1.
Valide = de 0,0 à 100,0
Par défaut = 0,0
CVSetPrevious
BOOL
Demande d’utilisation de CVPrevious. Si défini sur vrai, CVn-1 = CVPrevious
La valeur par défaut est fausse.
CVManLimiting
BOOL
Demande de limite CV en mode Manuel. Si le mode Manuel et CVManLimiting sont définis sur vrai, la CV est limitée par les valeurs CVHLimit et CVLLimit.
La valeur par défaut est fausse.
CVEUMax
REAL
Valeur maximale de CVEU. Valeur de CVEU qui correspond à 100 % de CV. Si CVEUMax = CVEUMin, l’instruction définit le bit approprié dans Status.
Valide = tout flottant
Par défaut = 100,0
CVEUMin
REAL
Valeur minimale de CVEU. Valeur de CVEU qui correspond à 0 % de CV. Si CVEUMax = CVEUMin, l’instruction définit le bit approprié 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 Cascade/Rapport, voire en mode Manuel si CVManLimiting est défini sur vrai. Si CVHLimit > 100 ou < CVLLimit, l’instruction définit le bit approprié dans Status. Si CVHLimit < CVLLimit, l’instruction limite la CV en faisant appel à la valeur de CVLLimit.
Valide = CVLLimit < CVHLimit Less than or equal to 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 Cascade/Rapport, voire en mode Manuel si CVManLimiting est défini sur vrai. Si CVLLimit< 0 ou CVHLimit< CVLLimit, l’instruction définit le bit approprié dans Status. Si CVHLimit < CVLLimit, l’instruction limite la CV en faisant appel à la valeur de CVLLimit.
Valide = 0,0 Less than or equal to CVLLimit < CVHLimit
Par défaut = 0,0
CVROCLimit
REAL
Limite de fréquence de changement de CV, en pourcentage par seconde. La limitation de fréquence de changement est uniquement utilisée en mode Auto ou Cascade/Rapport, voire en mode Manuel si CVManLimiting est défini sur vrai. Entrez 0 pour désactiver la limitation ROC de CV. Si CVROCLimit < 0, l’instruction définit le bit approprié dans Status et désactive la limitation ROC de la CV.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
FF
REAL
Valeur d’anticipation. La valeur d’anticipation est ajoutée à CV une fois que la limitation de zone morte passant par zéro a été appliquée à CV. Par conséquent, les modifications apportées à FF sont toujours reflétées dans la valeur de sortie finale de CV. Si FF < -100 ou > 100, l'instruction définit le bit approprié dans Status et limite la valeur utilisée pour FF.
Valide = de -100,0 à 100,0
Par défaut = 0,0
FFPrevious
REAL
Valeur FF
n-1
. Si FF SetPrevous est défini, l'instruction définit FF
n-1
= FFPrevious. FF
n-1
est la valeur de FF de l'exécution précédente. Si FFPrevious < -100 ou > 100, l'instruction définit le bit approprié dans Status et limite la valeur utilisée pour FF
n-1
Valide = de -100,0 à 100,0
Valeur par défaut - 0,0
FFSetPrevious
BOOL
Demande d'utilisation de FFPrevious. Si défini sur vrai, FFn-1 = FFPrevious.
La valeur par défaut est fausse.
HandFB
REAL
Valeur de retour portable de CV. CV est égal à cette valeur en mode Portable et quand HandFBFault est faux (bonne santé). Cette valeur provient généralement de la sortie d’une station portable/automatique montée sur site et est utilisée pour générer un transfert sans à­coup en dehors du mode Portable. Si HandFB < 0 ou > 100, l'instruction définit le bit approprié dans Status et limite la valeur utilisée pour CV.
Valide = de 0,0 à 100,0
Par défaut = 0,0
HandFBFault
BOOL
Indicateur de mauvaise santé de la valeur de HandFB. Si la valeur de HandFB est lue à partir d’une entrée analogique, HandFBFault est généralement contrôlé par l’état du canal d’entrée analogique. Lorsque ce paramètre est défini sur vrai, HandFBFault indique une erreur sur le module d'entrée et l'instruction définit le bit approprié dans Status.
La valeur par défaut est fausse = bonne santé.
WindupHIn
BOOL
Demande de haut de la saturation d’intégrale. Lorsque ce paramètre est défini sur vrai, la CV ne peut pas effectuer l’intégration dans le sens positif. Le signal est généralement obtenu à partir de la sortie WindupHOut d’une boucle secondaire.
La valeur par défaut est fausse.
WindupLIn
BOOL
Demande de bas de la saturation d’intégrale. Lorsque ce paramètre est défini sur vrai, la CV ne peut pas effectuer l’intégration dans le sens négatif. Ce signal est généralement obtenu à partir de la sortie WindupLOut d’une boucle secondaire.
La valeur par défaut est fausse.
ControlAction
BOOL
Demande d’action de contrôle. Définissez ce paramètre sur vrai pour calculer l'erreur selon la relation E = PV - SP ; définissez-le sur faux pour calculer l'erreur selon la relation E = SP - PV.
La valeur par défaut est fausse.
DependIndepend
BOOL
Demande de contrôle dépendant/indépendant. Lorsque ce paramètre est défini sur vrai, utilisez la forme dépendante de l'équation PID ; lorsqu'il est défini sur faux, utilisez la forme indépendante de l'équation.
La valeur par défaut est fausse.
PGain
REAL
Gain proportionnel. Lorsque la forme indépendante de l’algorithme PID est sélectionnée, entrez le gain proportionnel sans unité dans cette valeur. Lorsque la forme dépendante de l’algorithme PID est sélectionnée, entrez le gain de l’automate sans unité dans cette valeur. Entrez 0 pour désactiver le contrôle proportionnel. Si PGain < 0, l’instruction définit le bit approprié dans Status et utilise une valeur de PGain = 0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
IGain
REAL
Gain intégral. Lorsque la forme indépendante de l’algorithme PID est sélectionnée, entrez le gain intégral exprimé en 1/minute dans cette valeur. Lorsque l’algorithme PID dépendant est sélectionné, entrez la constante de temps intégrale exprimée en minutes/répétition dans cette valeur. Entrez 0 pour désactiver le contrôle intégral. Si IGain < 0, l’instruction définit le bit approprié dans Status et utilise une valeur de IGain = 0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
DGain
REAL
Gain dérivé. Lorsque la forme indépendante de l’algorithme PID est sélectionnée, entrez le gain dérivé en unités de minutes dans cette valeur. Lorsque l’algorithme PID dépendant est utilisé, entrez la constante de temps dérivé exprimée en minutes dans cette valeur. Entrez 0 pour désactiver le contrôle dérivé. Si DGain < 0, l’instruction définit le bit approprié dans Status et utilise une valeur de DGain = 0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
PVEProportional
BOOL
Demande de contrôle PV proportionnelle. Lorsque ce paramètre est défini sur vrai, calculez le terme proportionnel (DeltaPTerm) en utilisant la modification de la variable de procédé (PVPercent). Lorsque ce paramètre est défini sur faux, utilisez la modification de l'erreur (EPercent).
La valeur par défaut est fausse.
PVEDerivative
BOOL
Demande de contrôle PV dérivé. Lorsque ce paramètre est défini sur vrai, calculez le terme dérivé (DeltaDTerm) en utilisant la modification de la variable de procédé (PVPercent). Lorsque ce paramètre est défini sur faux, utilisez la modification de l'erreur (EPercent).
La valeur par défaut est définie sur vrai.
DSmoothing
BOOL
Demande de lissage des dérivées. Lorsque ce paramètre est défini sur vrai, les modifications du terme dérivé sont lissées. Le lissage des dérivées provoque moins de gigues d’horloge de la sortie provenant d’un signal PV bruité, mais limite également l’efficacité des gains dérivés élevés.
La valeur par défaut est fausse.
PVTracking
BOOL
Demande de suivi de PV par SP. Défini sur vrai pour provoquer le suivi de PV par SP en mode Manuel. Ignoré en mode Cascade/Rapport ou Auto.
La valeur par défaut est fausse.
ZCDeadband
REAL
Plage de la zone morte passant par zéro, mise à l’échelle en unités PV. Définit la plage de la zone morte passant par zéro. Entrez 0 pour désactiver la vérification de zone morte passant par zéro. Si ZCDeadband < 0, l’instruction définit le bit approprié dans Status et désactive la vérification de zone morte passant par zéro.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
ZCOff
BOOL
Demande de désactivation du passage par zéro. Défini sur vrai pour désactiver le passage par zéro pour le calcul de la zone morte.
La valeur par défaut est fausse.
PVHHLimit
REAL
Valeur d'alarme de limite haute-haute PV, à l'échelle en unités PV.
Valide = tout flottant
Par défaut = nombre flottant positif maximum
PVHLimit
REAL
Valeur d'alarme de limite haute PV, à l'échelle en unités PV.
Valide = tout flottant
Par défaut = nombre flottant positif maximum
PVLLimit
REAL
Valeur de limite d’alarme basse PV, mise à l’échelle en unités PV.
Valide = tout flottant
Par défaut = nombre flottant négatif maximum
PVLLLimit
REAL
Valeur de limite d’alarme basse basse PV, mise à l’échelle en unités PV.
Valide = tout flottant
Par défaut = nombre flottant négatif maximum
PVDeadband
REAL
Valeur de zone morte de limite d’alarme PV, mise à l’échelle en unités PV. La zone morte est la valeur delta entre la valeur d’activation et de désactivation de chaque limite d’alarme PV. Si PVDeadband < 0,0, l’instruction définit le bit approprié dans Status et limite PVDeadband à zéro.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
PVROCPosLimit
REAL
Limite d’alarme de fréquence de changement positif de PV. Valeur de la limite d’une variation positive (augmentation) de PV, mise à l’échelle en unités PV par seconde. Entrez 0,0 pour désactiver la vérification d’alarme PVROC positif. Si PVROCPosLimit < 0,0, l’instruction définit le bit approprié dans Status et désactive la vérification PVROC positive.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0 PV/seconde
PVROCNegLimit
REAL
Limite d’alarme de fréquence de changement négatif de PV. Valeur de la limite d’une variation négative (diminution) de PV, mise à l’échelle en unités PV par seconde. Entrez 0,0 pour désactiver la vérification d’alarme PVROC négatif. Si PVROCNegLimit < 0, l’instruction définit le bit approprié dans Status et désactive la vérification PVROC négative.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
PVROCPeriod
REAL
Période d’échantillon de la fréquence de changement de PV. Durée, en secondes, pendant laquelle la fréquence de changement de PV est évaluée. Entrez 0 pour désactiver la vérification d’alarme PVROC. Si PVROCPeriod < 0,0, l’instruction définit le bit approprié dans Status et désactive les vérifications PVROC positive et négative.
Valide = toute valeur flottante Greater than or equal to 0,0
Valeur par défaut = 0,0 seconde
DevHHLimit
REAL
Valeur de limite d’alarme haute haute de déviation, mise à l’échelle en unités PV. La déviation est la différence de valeur entre la variable de traitement (PV) et le point de consigne (SP). L’alarme de déviation prévient l’opérateur de l’écart entre la variable de traitement et la valeur de point de consigne. Si DevHHLimit < 0,0, l’instruction définit les bits appropriés dans Status et définit DevHHLimit = 0,0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = nombre flottant positif maximum
DevHLimit
REAL
Valeur de limite d’alarme haute de déviation, mise à l’échelle en unités PV. La déviation est la différence de valeur entre la variable de traitement (PV) et le point de consigne (SP). L’alarme de déviation prévient l’opérateur de l’écart entre la variable de traitement et la valeur de point de consigne. Si DevHLimit < 0,0, l’instruction définit le bit approprié dans Status et définit DevHLimit = 0,0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = nombre flottant positif maximum
DevLLimit
REAL
Valeur de limite d’alarme basse de déviation, mise à l’échelle en unités PV. La déviation est la différence de valeur entre la variable de traitement (PV) et le point de consigne (SP). L’alarme de déviation prévient l’opérateur de l’écart entre la variable de traitement et la valeur de point de consigne. Si DevLLimit < 0,0, l’instruction définit le bit approprié dans Status et définit DevLLimit = 0,0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = nombre flottant positif maximum
DevLLLimit
REAL
Valeur de limite d’alarme basse basse de déviation, mise à l’échelle en unités PV. La déviation est la différence de valeur entre la variable de traitement (PV) et le point de consigne (SP). L’alarme de déviation prévient l’opérateur de l’écart entre la variable de traitement et la valeur de point de consigne. Si DevLLLimit < 0,0, l’instruction définit le bit approprié dans Status et définit DevLLLimit = 0,0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = nombre flottant positif maximum
DevDeadband
REAL
Valeur de zone morte des limites d’alarmes de déviation, mise à l’échelle en unités PV. La zone morte est la valeur delta entre les valeurs d’activation et de désactivation pour chaque limite d’alarme de déviation. Si DevDeadband < 0,0, l’instruction définit le bit approprié dans Status et définit DevDeadband = 0,0.
Valide = entre 0,0 et la flottante positive maximale
Par défaut = 0,0
AllowCasRat
BOOL
Autoriser le mode Cascade/Rapport permissif. Définissez ce paramètre sur vrai pour autoriser la sélection du mode Cascade/Rapport à l'aide de ProgCasRatReq ou d'OperCasRatReq.
La valeur par défaut est fausse.
ManualAfterInit
BOOL
Mode manuel après demande d’initialisation. Lorsque ce paramètre est défini sur vrai, l'instruction est placée en mode Manuel si CVInitializing est défini sur vrai, sauf si le mode en cours est Outrepassement ou Portable. Lorsque ManualAfterInit est défini sur faux, le mode de l'instruction n'est pas modifié, sauf en cas de demande pour le faire.
La valeur par défaut est fausse.
ProgProgReq
BOOL
Demande de contrôle Programme du programme. Défini sur vrai par le programme utilisateur pour demander le contrôle Programme. Ignoré si ProgOperReq est vrai. Le maintien de cet élément sur vrai et de ProgOperReq sur faux verrouille l'instruction dans le contrôle Programme. Lorsque ProgValueReset est défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgOperReq
BOOL
Demande de contrôle Opérateur du programme. Défini sur vrai par le programme utilisateur pour demander le contrôle Opérateur. Le maintien de cet élément sur vrai verrouille l'instruction dans le contrôle Opérateur. Lorsque ProgValueReset est défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgCasRatReq
BOOL
Demande de mode Cascade/Rapport du programme. Défini sur vrai par le programme de l'utilisateur pour demander le mode Cascade/Rapport. Lorsque ProgValueReset est défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgAutoReq
BOOL
Demande de mode automatique du programme. Défini sur vrai par le programme de l'utilisateur pour demander le mode Auto. Lorsque ProgValueReset est défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgManualReq
BOOL
Demande de mode manuel du programme. Défini sur vrai par le programme de l'utilisateur pour demander le mode Manuel. Lorsque ProgValueReset est défini sur vrai, l'instruction met à zéro (faux) cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgOverrideReq
BOOL
Demande de mode Outrepassement du programme. Défini sur vrai par le programme de l'utilisateur pour demander le mode Outrepassement. Lorsque ProgValueReset est défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgHandReq
BOOL
Demande de mode Portable du programme. Défini 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 défini sur vrai, l'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
OperProgReq
BOOL
Demande de contrôle Programme de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Programme. L'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
OperOperReq
BOOL
Demande de contrôle Opérateur de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Opérateur. L'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
OperCasRatReq
BOOL
Demande de mode Cascade/Rapport de l’opérateur. Défini sur vrai par l'interface opérateur pour demander le mode Cascade/Rapport. L'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
OperAutoReq
BOOL
Demande de mode automatique de l’opérateur. Défini sur vrai par l'interface opérateur pour demander le mode Auto. L'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
OperManualReq
BOOL
Demande de mode manuel de l’opérateur. Défini sur vrai par l'interface opérateur pour demander le mode Manuel. L'instruction définit sur faux cette entrée à chaque exécution.
La valeur par défaut est fausse.
ProgValueReset
BOOL
Réinitialiser les valeurs de contrôle du programme. Lorsque ce paramètre est défini sur vrai, toutes les entrées de demandes du programme sont définies sur faux par l'instruction à chaque exécution. Lorsque ce paramètre est défini sur vrai en contrôle Opérateur, l'instruction définit SPProgram = SP et CVProgram = CV.
La valeur par défaut est fausse.
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
AtuneAcquire
BOOL
Demande d'acquisition AtuneData PIDE.
La valeur par défaut est fausse.
AtuneStart
BOOL
Demande de démarrage du réglage automatique.
La valeur par défaut est fausse.
AtuneUseGains
BOOL
Utiliser la demande de gains du réglage automatique.
La valeur par défaut est fausse.
AtuneAbort
BOOL
Demande d’abandon du réglage automatique.
La valeur par défaut est fausse.
AtuneUnacquire
BOOL
Demande de non-acquisition AtuneData PIDE.
La valeur par défaut est fausse.
Paramètre de sortie
Type de données
Description
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 contrôle un module de sortie analogique ou une boucle secondaire.
CVEU = (CV x CVEUSpan / 100) + CVEUMin
Calcul de la plage CVEU : CVEUSpan = (CVEUMax - CVEUMin)
CV
REAL
Sortie de variable de contrôle. Cette valeur est exprimée en pourcentage, de 0 à 100 %. CV est également limité par CVHLimit et CVLLimit en mode Auto ou Cascade/Rapport, voire en mode Manuel si CVManLimiting est défini sur vrai. Sinon, cette valeur est limitée entre 0 % et 100 %.
CVInitializing
BOOL
Indicateur de mode d’initialisation. CVInitializing est défini sur vrai lorsque CVInitReq est défini sur vrai, pendant la première scrutation de l'instruction, et sur une transition de vrai à faux de CVHealth (mauvais à bon). CVInitializing est défini sur faux une fois que l'instruction a été initialisée et que CVInitReq est faux.
CVHAlarm
BOOL
Indicateur d’alarme haute de CV. Défini sur vrai lorsque la valeur calculée de
CV > 100 ou CVHLimit.
CVLAlarm
BOOL
Indicateur d’alarme basse de CV. Défini sur vrai lorsque la valeur calculée de
CV < 0 ou CVLLimit.
CVROCAlarm
BOOL
Indicateur d’alarme de fréquence de changement de CV. Défini sur vrai lorsque la valeur calculée de la fréquence de changement de CV dépasse CVROCLimit.
SP
REAL
Valeur actuelle du point de consigne. La valeur de SP est utilisée pour contrôler CV en mode Auto ou Cascade/Rapport.
SPPercent
REAL
La valeur de SP s’exprime en pourcentage de la plage de PV.
SPPercent = ((SP - PVEUMin) x 100) / PVSpan
Calcul de la plage de PV : PVSpan = (PVEUMax - PVEUMin)
SPHAlarm
BOOL
Indicateur d’alarme haute de SP.
Défini sur vrai lorsque la SP > SPHLimit.
SPLAlarm
BOOL
Indicateur d’alarme basse de SP.
Défini sur vrai lorsque la SP < SPLLimit.
PVPercent
REAL
PV s’exprime en pourcentage de la plage.
PVPercent = ((PV- PVEUMin) x 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. Défini sur vrai en dehors du mode Cascade/Rapport ou lorsque CVInitializing est défini sur vrai. Ce signal est normalement utilisé par l’entrée CVInitReq d’une boucle PID primaire.
WindupHOut
BOOL
Indicateur haut de la saturation d’intégrale. Défini sur vrai lorsque la limite haute ou la limite basse de CV (selon l'action de contrôle), ou la limite haute de SP a été atteinte. Ce signal est généralement utilisé par l’entrée WindupHIn pour empêcher la saturation d’intégrale de la sortie CV sur une boucle primaire.
WindupLOut
BOOL
Indicateur bas de la saturation d’intégrale. Défini sur vrai lorsque la limite haute ou la limite basse de CV (selon l'action de contrôle), ou la limite basse de SP a été atteinte. Ce signal est généralement utilisé par l’entrée WindupLIn pour empêcher la saturation d’intégrale de la sortie CV sur une boucle primaire.
Ratio
REAL
Multiplicateur actuel du rapport.
RatioHAlarm
BOOL
Indicateur d’alarme haute de rapport. Défini sur vrai lorsque Ratio > RatioHLimit.
RatioLAlarm
BOOL
Indicateur d’alarme basse de rapport. Défini sur vrai lorsque Ratio < RatioLLimit.
ZCDeadbandOn
BOOL
Indicateur de zone morte passant par zéro. Lorsque ce paramètre est défini sur vrai, la valeur de CV ne change pas. Si ZCOff est défini sur vrai, ZCDeadbandOn est défini sur vrai lorsque | E | se situe dans la plage ZCDeadband. Si ZCOff est défini sur faux, ZCDeadbandOn est défini sur vrai lorsque | E | passe par zéro et reste dans la plage ZCDeadband. ZCDeadbandOn est défini sur faux (faux) lorsque | E | sort de la plage de zone morte ou si ZCDeadband = 0.
PVHHAlarm
BOOL
Indicateur d’alarme haute haute de PV. Défini sur vrai lorsque PV Greater than or equal to PVHHLimit. Défini sur faux lorsque PV < (PVHHLimit - PVDeadband)
PVHAlarm
BOOL
Indicateur d’alarme haute de PV. Défini sur vrai lorsque PV Greater than or equal to PVHLimit. Défini sur faux lorsque PV < (PVHLimit - PVDeadband)
PVLAlarm
BOOL
Indicateur d’alarme basse de PV. Défini sur vrai lorsque PV Less than or equal to PVLLimit. Défini sur faux lorsque PV > (PVLLimit + PVDeadband)
PVLLAlarm
BOOL
Indicateur d’alarme basse basse de PV. Défini sur vrai lorsque PV Less than or equal to PVLLLimit. Défini sur faux lorsque PV > (PVLLLimit + PVDeadband)
PVROCPosAlarm
BOOL
Indicateur d’alarme de fréquence de changement positif de PV. Défini sur vrai lorsque la fréquence de changement calculée de PV Greater than or equal to PVROCPosLimit.
PVROCNegAlarm
BOOL
Indicateur d’alarme de fréquence de changement négatif de PV. Défini sur vrai lorsque la fréquence de changement calculée de PV Less than or equal to (PVROCNegLimit x -1).
DevHHAlarm
BOOL
Indicateur d’alarme haute-haute de déviation. Défini sur vrai lorsque
PV Greater than or equal to (SP + DevHHLimit). Défini sur faux lorsque
PV < (SP + DevHHLimit - DevDeadband)
DevHAlarm
BOOL
Indicateur d’alarme haute de déviation. Défini sur vrai lorsque
PV Greater than or equal to (SP + DevHLimit). Défini sur faux lorsque
PV < (SP + DevHLimit - DevDeadband)
DevLAlarm
BOOL
Indicateur d’alarme basse de déviation. Défini sur vrai lorsque
PV Less than or equal to (SP - DevLLimit). Défini sur faux lorsque
PV > (SP - DevLLimit + DevDeadband)
DevLLAlarm
BOOL
Indicateur d’alarme basse basse de déviation. Défini sur vrai lorsque
PV Less than or equal to (SP - DevLLLimit). Défini sur faux lorsque
PV > (SP - DevLLLimit + DevDeadband)
ProgOper
BOOL
Indicateur de contrôle programme/opérateur. Défini sur vrai en contrôle Programme. Défini sur faux en contrôle Opérateur.
CasRat
BOOL
Indicateur de mode Cascade/Rapport. Défini sur vrai en mode Cascade/Rapport.
Auto
BOOL
Indicateur de mode Auto. Défini sur vrai en mode Auto.
Manual
BOOL
Indicateur de mode Manuel. Défini sur vrai en mode Manuel.
Override
BOOL
Indicateur de mode Outrepassement. Défini sur vrai en mode Outrepassement.
Hand
BOOL
Indicateur de mode Portable. Défini sur vrai en mode Portable.
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.
AtuneReady
BOOL
Défini sur vrai lorsque le paramètre AtuneData spécifié a été acquis par l'instruction PIDE.
AtuneOn
BOOL
Défini sur vrai lorsque le réglage automatique a été démarré.
AtuneDone
BOOL
Défini sur vrai lorsque le réglage automatique est terminé.
AtuneAborted
BOOL
Défini sur vrai lorsque le réglage automatique a été abandoné par l'utilisateur en raison d'erreurs survenues pendant l'opération de réglage automatique.
AtuneBusy
BOOL
Défini sur vrai lorsque le paramètre AtuneData spécifié n'a pas été acquis, car il est en cours d'acquisition par une autre instruction PIDE.
Status1
DINT
État du bloc fonctionnel.
InstructFault
(Status1.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.
PVFaulted (Status1.1)
BOOL
Mauvaise santé de la variable de procédé (PV).
CVFaulted (Status1.2)
BOOL
Mauvaise santé de la variable de contrôle (CV).
HandFBFaulted
(Status1.3)
BOOL
Mauvaise santé de la valeur HandFB.
PVSpanInv
(Status1.4)
BOOL
Plage de PV non valide. PVEUMax £ PVEUMin.
SPProgInv
(Status1.5)
BOOL
SPProg < SPLLimit ou SPProg > SPHLimit. L’instruction utilise la valeur limitée pour SP.
SPOperInv
(Status1.6)
BOOL
SPOper < SPLLimit ou SPOper > SPHLimit. L’instruction utilise la valeur limitée pour SP.
SPCascadeInv
(Status1.7)
BOOL
SPCascade < SPLLimit ou SPCascade > SPHLimit. L’instruction utilise la valeur limitée pour SP.
SPLimitsInv
(Status1.8)
BOOL
Limites incorrectes : SPLLimit < PVEUMin, SPHLimit > PVEUMax ou SPHLimit < SPLLimit. Si SPHLimit < SPLLimit, l’instruction limite la valeur en utilisant SPLLimit
RatioProgInv
(Status1.9)
BOOL
RatioProg < RatioLLimit ou RatioProg > RatioHLimit. L’instruction limite la valeur pour Ratio.
RatioOperInv
(Status1.10)
BOOL
RatioOper < RatioLLimit ou RatioOper > RatioHLimit. L’instruction limite la valeur pour Ratio.
RatioLimitsInv
(Status1.11)
BOOL
RatioLLimit < 0 ou RatioHLimit < RatioLLimit.
CVProgInv
(Status1.12)
BOOL
CVProg < 0 ou CVProg > 100, ou CVProg < CVLLimit ou CVProg > CVHLimit lorsque CVManLimiting est défini sur vrai. L’instruction limite la valeur pour CV.
CVOperInv
(Status1.13)
BOOL
CVOper < 0 ou CVOper > 100, ou CVOper < CVLLimit ou CVOper > CVHLimit lorsque CVManLimiting est défini sur vrai. L’instruction limite la valeur pour CV.
CVOverrideInv (Status1.14)
BOOL
CVOverride < 0 ou CVOverride > 100. L’instruction limite la valeur pour CV.
CVPreviousInv (Status1.15)
BOOL
CVPrevious < 0 ou CVPrevious > 100, ou CVPrevious < CVLLimit ou CVPrevious > CVHLimit en mode Auto ou Cascade/Rapport. L'instruction limite la valeur de CVn-1.
CVEUSpanInv
(Status1.16)
BOOL
Plage de CVEU non valide. L’instruction utilise une valeur de
CVEUMax = CVEUMin.
CVLimitsInv
(Status1.17)
BOOL
CVLLimit < 0, CVHLimit > 100 ou CVHLimit < CVLLimit. Si CVHLimit < CVLLimit, l’instruction limite CV en utilisant CVLLimit.
CVROCLimitInv (Status1.18)
BOOL
CVROCLimit < 0. L’instruction désactive la limitation ROC.
FFInv (Status1.19)
BOOL
FF < -100 ou FF > 100. L’instruction utilise la valeur limitée pour FF.
FFPreviousInv
(Status1.20)
BOOL
FFPrevious < - 100 ou FFPrevious > 100. L'instruction utilise la valeur limitée pour FF
n-1.
HandFBInv
(Status1.21)
BOOL
HandFB < 0 ou HandFB > 100. L’instruction utilise la valeur limitée pour CV.
PGainInv
(Status1.22)
BOOL
PGain < 0. L’instruction utilise une valeur de PGain = 0.
IGainInv
(Status1.23)
BOOL
IGain < 0. L’instruction utilise une valeur de IGain = 0.
DGainInv
(Status1.24)
BOOL
DGain < 0. L’instruction utilise une valeur de DGain = 0.
ZCDeadbandInv (Status1.25)
BOOL
ZCDeadband < 0. L’instruction désactive la zone morte passant par zéro.
PVDeadbandInv (Status1.26)
BOOL
PVDeadband < 0. L'instruction limite PVDeadband à zéro.
PVROCLimitsInv (Status1.27)
BOOL
PVROCPosLimit < 0, PVROCNegLimit < 0 ou PVROCPeriod < 0.
DevHLLimitsInv (Status1.28)
BOOL
Limites haute-basse de déviation non valides. Limite basse-basse < 0,
limite basse < 0, limite haute < 0 ou limite haute-haute < 0. L’instruction utilise 0 pour la limite non valide.
DevDeadbandInv (Status1.29)
BOOL
Déviation zone morte < 0 L’instruction utilise une valeur de DevDeadband = 0.
Status2
DINT
État de la temporisation du bloc fonctionnel.
TimingModeInv
(Status2.27)
BOOL
Valeur TimingMode non valide.
Reportez-vous aux attributs des blocs fonctionnels pour plus d’informations sur les modes de temporisation.
RTSMissed
(Status2.28)
BOOL
Utilisé seulement en mode Échantillonnage en temps réel. Défini sur vrai lorsque
ABS | DeltaT - RTSTime | > 1 (0,001 seconde).
RTSTimeInv
(Status2.29)
BOOL
Valeur RTSTime non valide.
RTSTimeStampInv (Status2.30)
BOOL
Valeur RTSTimeStamp non valide.
DeltaTInv
(Status2.31)
BOOL
Valeur DeltaT non valide.
Description
L’algorithme PID régule la sortie CV afin de maintenir la PV au SP lorsque l’instruction s’exécute en mode Cascade/Rapport ou Auto.
Lorsque ControlAction est défini, la valeur calculée de EPercent et de PVPIDPercent est passée en négatif avant d’être utilisée par l’algorithme de contrôle.
Le tableau suivant décrit comment l’instruction calcule les termes PID.
Terme PID
Méthode de calcul
proportionnel
Le terme proportionnel est calculé en utilisant les éléments suivants :
  • PV lorsque PVEProportional est défini ou
  • Erreur lorsque PVEProportional est mis à zéro
Définissez PGain = 0 pour désactiver le contrôle proportionnel.
intégral
Le terme intégral est calculé en utilisant l’erreur. Définissez IGain = 0 pour désactiver le contrôle intégral. De même, la définition de PGain = 0 lorsque DependIndepend est défini désactive le contrôle intégral.
dérivé
Le terme dérivé est calculé en utilisant les éléments suivants :
  • PV lorsque PVEDerivative est défini ou
  • Erreur lorsque PVEDerivative est mis à zéro
Définissez DGain = 0 pour désactiver le contrôle dérivé. De même, la définition de PGain = 0 lorsque DependIndepend est défini désactive le contrôle dérivé.
Le lissage des dérivées est activé lorsque DSmoothing est défini, et désactivé lorsque DSmoothing est mis à zéro. Le lissage des dérivées provoque moins de gigues d’horloge de la sortie CV provenant d’un signal PV bruité, mais limite également l’efficacité des gains dérivés élevés.
Calcul de CV
L'algorithme de contrôle PID calcule la valeur de CV en faisant la somme de Delta PTerm, Delta ITerm, Delta
DTerm et CV de l'exécution précédente de l'instruction, par exemple CV
n-1
. Lorsque CVsetPrevious est défini,
CVn-1 est égal à CVPrevious. Cela vous permet de prédéfinir CV
n-1
sur une valeur spécifiée avant de calculer la valeur de CV.
CalculatedCV = CV
n-1
+ DDelta SymbolPTerm + DITerm + DDTerm
Algorithmes PIDE
L’instruction PIDE utilise une forme de vitesse pour l’algorithme PID semblable à celle qui est utilisée dans la plupart des systèmes DCS. L’algorithme de forme de vitesse présente certains avantages, notamment :
  • Modifications de gain adaptatif sans à-coup : vous pouvez modifier les gains à la volée sans initialisation de l’algorithme.
  • Schémas de contrôle de plusieurs boucles : vous appliquer la limitation croisée entre les boucles en agissant sur le terme CV
    n-1
    .
Forme Gains indépendants
PIDE_fbd_IndGains_eq
Dans cette forme de l’algorithme, chaque terme de l’algorithme (proportionnel, intégral et dérivé) possède un gain séparé. La modification d’un gain n’affecte que ce terme et aucun autre, avec :
Terme PIDE :
Description :
CV
Variable de contrôle
E
Erreur de pourcentage de la plage
D
t
Temps de mise à jour en secondes utilisé par la boucle
K
p
Gain proportionnel
K
I
Gain intégral en min
-1
une valeur de K
I
supérieur à produit une réponse intégrale plus rapide.
K
D
Gain dérivé en minutes
Forme Gains dépendants
PIDE_fbd_DepGains_eq
Cette forme d’algorithme modifie le gain proportionnel dans un gain de l’automate. En modifiant de nouveau le gain de l’automate, vous pouvez modifier l’action des trois termes (proportionnel, intégral et dérivé) en même temps, avec :
Terme PIDE :
Description :
CV
Variable de contrôle
E
Erreur de pourcentage de la plage
D
t
Temps de mise à jour en secondes utilisé par la boucle
K
c
Gain de l'automate
T
I
Constante de temps intégrale en minutes par répétition une valeur de T
1
supérieur produit une réponse intégrale plus lente
Il faut T
1
minutes au terme intégral pour répéter l'action du terme proportionnel en réponse à une modification d'étape en erreur.
T
D
Temps dérivé dans constante en minutes
Terme PIDE :
Description :
CV
Variable de contrôle
E
Erreur de pourcentage de la plage
D
t
Temps de mise à jour en secondes utilisé par la boucle
Kp
Gain proportionnel
K
I
Gain intégral en min
-1
une valeur de K
I
supérieur à produit une réponse intégrale plus rapide.
K
D
Gain dérivé en minutes
Détermination de l’algorithme à utiliser
PIDE_fbd_DetermineAlgorithm
Les équations PIDE ci-dessus sont représentatives des algorithmes utilisés par l’instruction PIDE. Vous pouvez substituer la modification apportée aux valeurs d’erreur à la modification de PV (en pourcentage de la plage) pour les termes proportionnel et dérivé en agissant sur les paramètres PVEProportional et PVEDerivative. Par défaut, l’instruction PIDE utilise la modification de l’erreur pour le terme proportionnel et la modification de PV pour le terme dérivé. Cela élimine les grandes impulsions dérivées lors de modifications du point de consigne.
Vous pouvez convertir les gains utilisés entre les différentes formes d’algorithme PIDE en utilisant les équations suivantes :
PIDE_fbd_algorithm_eqs
Chaque algorithme fournit un contrôle identique avec les gains appropriés. Certaines personnes préfèrent le style de gains indépendants, car elles peuvent agir sur les gains individuels sans affecter les autres termes. D’autres préfèrent le style de gains dépendants, car elles peuvent, au moins dans une certaine mesure, modifier seulement le gain de l’automate et provoquer une modification globale de la dynamique de la boucle PID sans modifier chaque gain séparément.
Surveillance de l’instruction PIDE
Une face avant opérateur est disponible pour l'instruction PIDE.
Réglage automatique de l’instruction PIDE
L’outil de réglage automatique PIDE de l’application
Logix Designer
Logix Designer
fournit un outil de réglage automatique à boucle ouverte intégré à l’instruction PIDE. Vous pouvez effectuer le réglage automatique à partir du terminal
PanelView
ou tout autre périphérique d'interface opérateur, ainsi que depuis l'application
Logix Designer
. Le bloc PIDE comporte une Étiquette de réglage automatique (type PIDE_AUTOTUNE) que vous spécifiez pour les blocs PIDE que vous souhaitez régler automatiquement.
L’outil de réglage automatique PIDE est installé avec l’application, mais vous avez besoin d’une clé d’activation pour l’activer. L’outil de réglage automatique est pris en charge uniquement avec la programmation par bloc fonctionnel ; il n’est pas disponible en programmation par diagramme à relais ou texte structuré.
Utilisez l’onglet Réglage automatique pour spécifier et configurer l’étiquette de réglage automatique d’un bloc PIDE.
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
Si CVFault et CVEUSpanlnv sont définis, reportez-vous aux Défauts de traitement plus loin dans cette instruction.
Si CVFault et CVEUSpanlnv sont mis à zéro :
  1. CVInitializing est défini
  2. Si PVFault est défini, PVSpanlnv et SPlimitsInv sont mis à zéro. Reportez-vous aux Défauts de traitement dans cette instruction.
  3. L’algorithme de contrôle PID n’est pas exécuté.
  4. L’instruction définit CVEU = CVInitValue et CV = pourcentage correspondant.
  5. Lorsque CVInitializing et Manual AfterInit sont définis, l'instruction désactive les modes Auto et Cascade/Rapport. Si le mode actuel n'est pas Outrepassement ou Portable, l'instruction passe en mode manuel. Si ManualAfterInit est effacé, le mode n'est pas modifié.
    CVEu = CVInitValue
    CV
    n-1
    = CV = CVEU - CVEUMin x100
    CVEUMax - CVEUMin
    CVOper = CV
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.
Lorsque CVInitReq est défini, ou pendant la première scrutation de l’instruction, ou sur une configuration vers une transition mise à zéro de CVFault (mauvais vers bon), l’instruction initialise les sorties CVEU et CV sur la valeur de CVInitValue. Si le mode de temporisation n’est pas sur-échantillonnage et que EnableIn passe de mis à zéro à défini, l’instruction initialise les valeurs CVEU et CV. CVInitialization est mis à zéro après l’initialisation et lorsque CVInitReq est mis à zéro.
CVInitValue provient normalement de la valeur de retour de la sortie analogique. La valeur CVInitReq provient normalement du bit d’état « In Hold » de la sortie analogique contrôlée par CVEU. La procédure d’initialisation est effectuée afin d’éviter un à-coup au démarrage dans le signal de sortie envoyé au dispositif de terrain.
Lorsque vous utilisez des boucles PID en cascade, la boucle PID primaire peut être initialisée lors de l’initialisation de la boucle secondaire ou lorsque la boucle secondaire quitte le mode Cascade/Rapport. Dans ce cas, déplacez l’état des sorties InitPrimary et SP de la boucle secondaire vers les entrées CVInitReq et CVInitValue sur la boucle primaire.
L’instruction ne s’initialise pas et les valeurs CVEU et CV ne sont pas mises à jour si CVFault ou CVEUSpanInv est défini.
Exemples
Exemple 1
La manière la plus simple de mettre en œuvre une instruction PIDE consiste à créer une routine de bloc fonctionnel dans un programme dans une tâche périodique. Par défaut, le mode de temporisation de l’instruction PIDE est Périodique. Lorsque l’instruction PIDE est utilisée dans une tâche périodique et en mode de temporisation Périodique, elle utilise automatiquement la vitesse de mise à jour de la tâche périodique comme fréquence de mise à jour pour son delta t. Il vous suffit de câbler l’entrée analogique de la variable de procédé sur le paramètre PV de l’instruction PIDE et de câbler la sortie CVEU de l’instruction PIDE sur la sortie analogique de la variable analogique contrôlée.
Vous pouvez éventuellement câbler l’indicateur de défaut de l’entrée analogique (si disponible) sur le paramètre PVFault sur l’instruction PIDE. Cela force PIDE en mode Manuel lorsque l’entrée analogique est en défaut et arrête l’augmentation ou la réduction de la sortie CVEU PIDE lorsque le signal PV n’est pas disponible.
Bloc fonctionnel
PIDE_FB_ex1_v31
Texte structuré
PIDE_01.PV := Local:1:I.Ch0Data;
PIDE_01.PVFault := Local:1:I.Ch0Fault;
PIDE(PIDE_01);
Local:2:)O.Ch0Data :=PIDE_01.CVEU;
Exemple 2
Le contrôle en cascade est utile lorsque des perturbations provoquées par l’environnement externe se produisent trop souvent sur la variable contrôlée, ce qui provoque ensuite des perturbations sur la variable de procédé que vous essayez de contrôler. Par exemple, essayez de contrôler la température du liquide dans un réservoir en faisant varier la quantité de vapeur injectée dans une enveloppe chauffante autour du réservoir. Si le débit de vapeur chute soudainement à cause d’un processus en amont, la température du liquide dans le réservoir peut chuter et l’instruction PIDE ouvre alors la vanne de vapeur pour compenser la chute de température.
Dans cet exemple, une boucle en cascade fournit un meilleur contrôle en ouvrant la vanne de vapeur lorsque le débit de vapeur chute avant la baisse de la température du liquide dans le réservoir. Pour mettre en œuvre une boucle en cascade, utilisez une instruction PIDE pour contrôler l’ouverture de la vanne de vapeur en fonction d’un signal de variable de procédé provenant d’un transmetteur de débit de vapeur. Cela correspond à la boucle secondaire de la paire en cascade. Une deuxième instruction PIDE (appelée boucle primaire) utilise la température du liquide comme variable de procédé et envoie sa sortie CV au point de consigne de la boucle secondaire. De cette manière, la boucle de température primaire demande une certaine quantité de débit de vapeur de la boucle de débit de vapeur secondaire. Le rôle de la boucle de débit de vapeur consiste alors à fournir la quantité de vapeur demandée par la boucle de température afin de maintenir une température de liquide constante.
Bloc fonctionnel
PIDE_FB_ex2_v31
Texte structuré
PrimaryLoop.PV := Local:1:I.CH0Data;
PrimaryLoop.CVInitReq := SecondaryLoop.InitPrimary;
PrimaryLoop.CVInitValue := SecondaryLoop.SP;
PrimaryLoop.WindupHIn := SecondaryLoop.WindupHOut;
PrimaryLoop.WindupLIn := SecondaryLoop.WindupLOut;
PIDE(PrimaryLoop);
SecondaryLoop.PV := Local:1:I.Ch1Data;
SecondaryLoop.SPCascade := PrimaryLoop.CVEU;
PIDE(SecondaryLoop);
Local:2:O.Ch0Data:= SecondaryLoop.CVEU;
Pour que deux boucles en cascade fonctionnent correctement, le temps de réponse du processus de la boucle secondaire doit être plus court que celui de la boucle primaire. La raison à cela est que le processus de la boucle secondaire doit pouvoir compenser toute perturbation éventuelle avant que ces perturbations n’affectent le processus de la boucle primaire. Dans cet exemple, si le débit de vapeur chute, il doit pouvoir à nouveau augmenter par l’effet de l’automate secondaire avant que la température du liquide ne s’en trouve affectée.
Pour configurer les instructions d’une paire de PIDE en cascade, définissez le paramètre d’entrée
AllowCasRat
dans la boucle secondaire. Cela permet de passer celle-ci en mode Cascade/Rapport. Ensuite, câbler le
CVEU
de la boucle primaire au paramètre
SPCascade
de la boucle secondaire. La valeur
SPCascade
est utilisée comme SP de la boucle secondaire lorsque celle-ci est en mode Cascade/Rapport. La plage de l’unité de procédé du CVEU sur la boucle primaire doit correspondre à celle de l’unité de procédé de PV de la boucle secondaire. Cela permet à la boucle primaire de mettre à l’échelle sa valeur de 0-100 % de CV dans les unités de procédé correspondantes utilisées pour le point de consigne de la boucle secondaire.
L’instruction PIDE prend en charge d’autres fonctionnalités pour prendre en charge plus efficacement le contrôle en cascade. Raccordez la sortie
InitPrimary
de la boucle secondaire à l’entrée
CVInitReq
de la boucle primaire, et raccordez la sortie SP de la boucle secondaire à l’entrée
CVInitValue
de la boucle primaire. La valeur du CVEU de la boucle primaire est ainsi égale à SP de la boucle secondaire lorsque cette dernière quitte le mode Cascade/Rapport. Cela permet un transfert sans à-coup lorsque vous placez à nouveau la boucle secondaire en mode Cascade/Rapport. Raccordez également les sorties
WindupHOut
et WindupLOut de la boucle secondaire sur les entrées
WindupHIn
et
WindupLIn
de la boucle primaire. Cela permet d’arrêter l’augmentation ou la diminution, tel qu’approprié, par la boucle primaire de sa valeur du CVEU si la boucle secondaire atteint une limite de SP ou de CV, et élimine toute saturation d’intégrale de la boucle primaire dans ces conditions.
Exemple 3
Le contrôle du rapport est généralement utilisé pour ajouter un fluide à un autre dans une proportion fixe. Par exemple, si vous voulez ajouter deux réactifs (A et B) à un réservoir selon un rapport constant, et que le débit du réactif A risque de changer avec le temps en raison de perturbations des procédés en amont, vous pouvez utiliser un automate de rapport pour ajuster automatiquement le débit d’ajout du réactif B. Dans cet exemple, le réactif A est souvent appelé débit « non contrôlé », car il n’est pas contrôlé par l’instruction PIDE. Le réactif B est, quant à lui, appelé débit « contrôlé ».
Pour contrôler le rapport avec une instruction PIDE, définissez les paramètres d’entrée
AllowCasRat
et
UseRatio
. Raccordez le débit non contrôlé au paramètre d’entrée
SPCascade
. En mode Cascade/Rapport, le débit non contrôlé est multiplié soit par
RatioOper
(dans le cas contrôle Opérateur), soit par RatioProg (dans le cas contrôle Programme), et la valeur résultante est utilisée par l’instruction PIDE comme point de consigne.
Bloc fonctionnel
PIDE_FB_ex3_v31
Texte structuré
PIDE_01.PV := ControlledFlow;
PIDE_01.SPCascade := UncontrolledFlow;
PIDE(PIDE_01);
Local:2:O.Ch0Data := PIDE_01.CVEU;
Basculement entre contrôle Programme et contrôle Opérateur
L’instruction PIDE peut être contrôlée soit par un programme de l’utilisateur, soit par une interface opérateur. Vous pouvez changer le mode de contrôle à tout moment. Le contrôle Programme et Opérateur utilisent la même sortie ProgOper. Lorsque ProgOper est défini, le contrôle est en mode Programme. Sinon, le contrôle est en mode Opérateur.
Le diagramme suivant montre comment l’instruction PIDE change entre le contrôle Programme et le contrôle Opérateur.
Switching Between Program Control and Operator Control
(1) L’instruction reste en mode contrôle Opérateur lorsque ProgOperReq est défini.
Modes de fonctionnement
L’instruction PIDE prend en charge les modes PID suivants.
Mode de fonctionnement PID
Description
Cascade/Rapport
En mode Cascade/Rapport, l’instruction calcule la modification de CV. Cette instruction régule la valeur CV pour maintenir PV au niveau soit de la valeur SPCascade, soit de la valeur SPCascade multipliée par la valeur de Ratio. SPCascade provient soit du CVEU d’une boucle PID primaire pour le contrôle en cascade, soit du débit « non contrôlé » d’une boucle contrôlé par le rapport.
Sélectionnez le mode Cascade/Rapport en utilisant soit OperCasRatReq, soit ProgCasRatReq :
Définissez OperCasRatReq pour demander le mode Cascade/Rapport. Ignoré si ProgOper, ProgOverrideReq, ProgHandReq, OperAutoReq ou OperManualReq est défini, ou si AllowCasRat est mis à zéro.
Définissez ProgCasRatReq pour demander le mode Cascade/Rapport. Ignoré si ProgOper ou AllowCasRat est mis à zéro, ou si ProgOverrideReq, ProgHandReq, ProgAutoReq ou ProgManualReq est défini.
Auto
En mode Auto, l’instruction calcule la modification de CV. L’instruction régule CV pour maintenir PV au niveau de SP. En mode de contrôle Programme, SP = SPProg ; en mode de contrôle Opérateur, SP = SPOper.
Sélectionnez le mode Auto en utilisant OperAutoReq ou ProgAutoReq :
Définissez OperAutoReq pour demander le mode Auto. Ignoré si ProgOper, ProgOverrideReq, ProgHandReq ou OperManualReq est défini.
Définissez ProgAutoReq pour demander le mode Auto. Ignoré si ProgOper est mis à zéro, ou si ProgOverrideReq, ProgHandReq ou ProgManualReq est défini.
Manuel
En mode Manuel, l’instruction ne calcule pas la modification de CV. La valeur de CV est déterminée par le contrôle. En mode de contrôle Programme, CV = CVProg ; en mode de contrôle Opérateur, CV = CVOper.
Sélectionnez le mode Manuel en utilisant OperManualReq ou ProgManualReq :
Définissez OperManualReq pour demander le mode Manuel. Ignoré si ProgOper, ProgOverrideReq ou ProgHandReq est défini.
Définissez ProgManualReq pour demander le mode Manuel. Ignoré si ProgOper est mis à zéro, ou si ProgOverrideReq ou ProgHandReq est défini.
Asservissement
Dans le mode Outrepassement, l’instruction ne calcule pas le modification de CV.
CV = CVOverride, quel que soit le mode de contrôle. Le mode Outrepassement est généralement utilisé pour définir un « état de sécurité » pour la boucle PID.
Sélectionnez le mode Outrepassement à l’aide de ProgOverrideReq :
Définissez ProgOverrideReq pour demander le mode Outrepassement. Ignoré si ProgHandReq est mis à zéro.
Portable (Hand)
Dans le mode Portable, l'algorithme PID ne calcule pas la modification de CV.
CV = HandFB, quel que soit le mode de contrôle. Le mode Portable est généralement utilisé pour indiquer que le contrôle de l’élément de contrôle final a été pris par une station auto/portable de terrain.
Sélectionnez le mode Portable à l’aide de ProgHandReq :
Définissez ProgHandReq 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.
Les modes Cascade/Rapport, Auto et Manuel peuvent être contrôlés par un programme de l’utilisateur en contrôle Programme ou par une interface opérateur en contrôle Opérateur. Les modes Outrepassement et Portable possèdent une entrée de demande de mode qui ne peut être contrôlé par un programme de l’utilisateur. Cette entrée fonctionne aussi bien avec le contrôle Programme et Opérateur.
Sélection du point de consigne
Après que l’instruction a déterminé le mode de contrôle (programme ou opérateur) et le mode PID, l’instruction peut obtenir la valeur adéquate de SP. Vous pouvez sélectionner SP de Cascade/Rapport ou SP actuel.
SP Cascade/Rapport
SP Cascade/Rapport dépend des valeurs UseRatio et ProgOper.
Cascade_Ratio SP
SP actuel
SP actuel dépend du mode Cascade/Rapport, de la valeur de PVTracking, du mode Auto et de la valeur de ProgOper.
PIDE_fbd_CurrentSP
Limite haute/basse de SP
L’algorithme d’alarme de transition haute à basse compare SP aux limites d’alarme SPHLimit et SPLLimit. SPHLimit ne peut pas être supérieure à PVEUMax, et SPLLimit ne peut pas être inférieure à PVEUMin.
PIDE_fbd_SPHighLow
Mise à jour des valeurs de SPOper et de SPProg
L’instruction PIDE règle SPOper ou SPProg sur SP, pour obtenir un changement de contrôle sans à-coup entre les modes de contrôle Programme et Opérateur, ou lors de la transition depuis le mode Cascade/Rapport.
PIDE_fbd_Update_SPOper_SPProg
Alarme Haute/Basse de PV
L’algorithme d’alarme haute-haute à basse-basse compare PV aux limites d’alarme de celle-ci, et aux limites d’alarme PV plus ou moins la zone morte de l’alarme PV.
PIDE_fbd_PVHLAlarm
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro toutes les sorties d’alarme PV. L’instruction met également à zéro les sorties d’alarme de PV et désactive l’algorithme d’alarme lorsque PVFaulted est défini.
Alarme de la fréquence de changement de PV
L’alarme de la fréquence de changement (ROC) de PV compare la modification de la valeur de PV sur la période PVROCPeriod aux limites positives et négatives de la fréquence de changement de PV. PVROCPeriod fournit un type de zone morte pour l’alarme de fréquence de changement. Par exemple, si vous utilisez une limite d’alarme ROC de 2 °F/seconde avec une période d’exécution de 100 ms, et un module d’entrée analogique avec une résolution de 1 °F, une alarme ROC est déclenchée à chaque fois que la valeur d’entrée change, car l’instruction voit une fréquence de 10 °F/seconde. Toutefois, en entrant une valeur d’au moins 1 s pour PVROCPeriod, l’alarme ROC est déclenchée uniquement si la fréquence dépasse réellement la limite de 2 °F/seconde.
ROC est calculée uniquement lorsque PVROCPeriod a expiré. La fréquence de changement est calculée selon la formule suivante :
ElapsedROCPeriod = ElapsedROCPeriod + ElapsedTimeSinceLastExecution
Si ElapsedROCPeriod
³
PVROCPeriod, alors :
Cette valeur :
Correspond à :
PVROC
PIDE_fbd_PVROC_eq
PVROC
N-1
PVROC
N-1
= PV
ElapsedROCPeriod
ElapsedROCPeriod = 0
Une fois PVROC calculé, les alarmes ROC de PV sont déterminées ainsi :
PIDE_fbd_PVROCAlarm
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro les sorties d’alarme ROC de PV. L’instruction met également à zéro les sorties d’alarme ROC de PVROC, et désactive l’algorithme d’alarme ROC de PV lorsque PVFaulted est défini.
Conversion des valeurs PV et SP en pourcentages
L’instruction convertit PV et SP en pourcentages, et calcule l’erreur avant d’exécuter l’algorithme de contrôle PID. L’erreur est égale à la différence entre les valeurs PV et SP. Après la programmation de ControlAction, les valeurs de EPercent, E et PVPIDPercent sont annulées avant leur utilisation par l'algorithme PID.
PIDE_fbd_ConvPVSP_percent
(1) PVPIDPercent et Deviation sont des paramètres internes utilisés par l’algorithme de contrôle PID.
Alarme Haute/Basse de déviation
La déviation est la différence de valeur entre PV et SP. L’alarme de déviation prévient l’opérateur de l’écart entre la variable de traitement et la valeur de point de consigne.
L’algorithme d’alarme haute-haute à basse-basse compare la déviation aux limites d’alarme de celle-ci, et aux limites d’alarme de déviation plus ou moins la zone morte.
PIDE_fbd_DevHLAlarm
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro les sorties d’alarme de la déviation. L’instruction met également à zéro les sorties d’alarme de la déviation et désactive l’algorithme d’alarme lorsque PVFaulted ou PVSpanInv est défini.
Contrôle de la zone morte passant par zéro
Vous pouvez limiter CV de manière à ce que sa valeur ne change pas lorsque l’erreur reste dans une plage spécifiée par ZCDeadband (| E |
£
ZCDeadband).
PIDE_fbd_ZeroCrossDBControl
(1)
Quand ZCOff est effacé, ZCDeadband > 0, une erreur a franchi zéro pour la première fois, (p. ex. En >= 0 et En-1 < 0 ou quand En <= 0 et En-1 > 0), et | En | <= ZCDeadband, l’instruction définit ZCDeadbandOn.
(2)
Lors de la transition vers le mode Auto ou Cascade/Ratio, l'instruction définit En-1 = En.
L’instruction désactive l’algorithme de passage par zéro et met à zéro ZCDeadband dans les cas suivants :
  • Pendant la première scrutation de l’instruction
  • ZCDeadband
    £
    0
  • Le mode actuel n’est pas Auto ou Cascade/Rapport
  • PVFaulted est défini
  • PVSpanInv est défini
Contrôle d’anticipation
Calculer CV en additionnant CV depuis l’algorithme de passage par zéro avec ∆FF. La valeur de ∆FF = FF – FFn-1. Lorsque FFSetPrevious est défini, FFn-1=FFPrevious. Ceci permet de prérégler FFn-1 à une valeur spécifiée avant que l’instruction calcule la valeur de ∆FF.
PIDE_fbd_FFControl
Sélection de la variable de contrôle
Une fois l’algorithme PID exécuté, sélectionnez CV en fonction du mode de contrôle (programme ou opérateur) et du mode PID actuel.
PIDE_fbd_SelContVar
Limite de saturation d’intégrale de CV
Limitez CV de manière à ce que sa valeur ne puisse pas augmenter lorsque WindupHIn est défini ou qu’elle ne puisse pas diminuer lorsque WindupLIn est défini. Ces entrées correspondent généralement aux sorties WindupHOut ou WindupLOut d’une boucle secondaire. Les entrées WindupHIn et WindupLIn sont ignorées si CVInitializing, CVFault ou CVEUSpanInv est défini.
PIDE_fbd_CVWindupLimiting
Limite du pourcentage de CV
Le diagramme suivant illustre comment l’instruction détermine la limitation du pourcentage de CV.
PIDE_fbd_CVPercentLimiting
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro les sorties d’alarme.
Limite haute/basse de CV
L’instruction exécute toujours une alarme en fonction de CVHLimit et de CVLLimit. Limitez CV avec CVHLimit et CVLLimit en mode Auto ou Cascade/Rapport. En mode Manuel, limitez CV avec CVHLimit et CVLLimit lorsque CVManLimiting est défini. Sinon, limitez CV par 0 et 100 %.
PIDE_fbd_CVHLLimiting
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro les sorties d’alarme.
Limite de la fréquence de changement de CV
L’instruction PIDE limite la fréquence de changement de CV en mode Auto ou Cascade/Rapport, ou en mode Manuel si CVManLimiting est défini. Une valeur égale à zéro désactive la limitation de la fréquence de changement de CV.
La fréquence de changement de CV est calculée selon la formule suivante :
PIDE_fbd_CVROCLimiting
où DeltaT est en secondes.
Une fois la fréquence de changement de CV calculée, les alarmes de la fréquence de changement de CV sont déterminées ainsi :
PIDE_fbd_CVROCLimiting2
(1) Pendant la première scrutation de l’instruction, l’instruction met à zéro la sortie d’alarme. L’instruction met également à zéro la sortie d’alarme et désactive l’algorithme de fréquence de changement de CV lorsque CVInitializing est défini.
(2) En mode Auto ou Cascade/Rapport, ou en mode Manuel si CVManLimiting est défini, l’instruction limite la modification de CV.
Mise à jour des valeurs CVOper et CVProg
L’instruction PIDE définit CVOper = CV, sauf en mode de Manuel opérateur. Cela permet d’obtenir un changement de mode sans à-coup à partir de n’importe quelle contrôle pour le mode de Manuel opérateur.
PIDE_fbd_Update_CVOper_CVProg
Contrôle de la boucle primaire
Le contrôle de la boucle primaire est généralement utilisé par une boucle PID primaire pour obtenir un changement sans à-coup et une saturation d’intégrale sans remise à zéro en mode Cascade/Rapport. Le contrôle de la boucle primaire inclut la sortie de la boucle primaire d’initialisation et les sorties de la saturation d’intégrale sans remise à zéro. La sortie InitPrimary est habituellement utilisée par l’entrée CVInitReq d’une boucle PID primaire. Les sorties de saturation d’intégrale sont couramment utilisées par les entrées de saturation d’intégrale d’une boucle primaire pour limiter la saturation d’intégrale de sa sortie CV.
PIDE_fbd_PrimLoopCont
(1) Pendant la première scrutation de l’instruction, l’instruction définit InitPrimary.
(2) Si CVInitializing est défini ou si le mode n’est pas le mode Cascade/Rapport, l’instruction définit InitPrimary.
(3) Si CVInitializing est mis à zéro et si le mode est le mode Cascade/Rapport, l’instruction met à zéro InitPrimary.
(4) Pendant la première scrutation de l’instruction, l’instruction met à zéro les sorties de saturation d’intégrale de l’instruction. L’instruction met également à zéro les sorties de saturation d’intégrale et désactive l’algorithme de saturation d’intégrale de CV si CVInitializing est défini et si CVFaulted ou CVEUSpanInv est défini.
(5) L’instruction définit WindupHOut si SPHAlarm est défini, ou si ControlAction est mis à zéro et CVHAlarm est défini, ou si ControlAction et CVLAlarm sont définis.
Les limites de SP et de CV fonctionnent indépendamment les unes des autres. Une limite haute pour SP n’empêche pas la valeur de CV d’augmenter. De même, une limite haute ou basse pour CV n’empêche pas la valeur de SP d’augmenter.
(6) L’instruction efface WindupHOut lorsque SPHAlarm a été effacée et non pas lorsque ControlAction a été effacée et lorsque CVHAlarm a été définie ou lorsque ControlAction et CVLAlarm ont été programmées.
(7) L’instruction définit WindupLOut si SPLAlarm est défini, ou si ControlAction est mis à zéro et CVLAlarm est défini, ou si ControlAction et CVHAlarm sont définis.
Les limites de SP et de CV fonctionnent indépendamment les unes des autres. Une limite SP basse n’empêche pas la valeur de CV d’augmenter et, de même, une limite CV basse ou haute n’empêche pas la valeur de SP d’augmenter.
(8) L’instruction efface WindupLOut lorsque SPLAlarm a été effacée et non pas lorsque ControlAction a été effacée et lorsque CVLAlarm a été définie ou lorsque ControlAction et CVHAlarm ont été programmées.
Défauts de traitement
La tableau suivant décrit la manière dont l’instruction gère les défauts d’exécution :
Condition de défaut
Action
CVFaulted est vrai ou
CVEUSpanInv est vrai
L'instruction n'est pas initialisée, CVInitializing est défini sur faux
Calcul de la valeur en pourcentage de PV et SP, calcul de l’erreur, mise à jour des paramètres internes pour EPercent et PVPIDPercent
L’algorithme de contrôle PID n’est pas exécuté
Désactivation les modes Auto et Cascade/Rapport. Si le mode actuel n’est pas le mode Outrepassement ou Portable, passer en mode Manuel.
Définir la CV sur la valeur déterminée par contrôle Programme ou Opérateur et le mode (Manuel, Outrepassement ou Portable).
PVFaulted est vrai
Désactivation les modes Auto et Cascade/Rapport. Si le mode actuel n’est pas le mode Outrepassement ou Portable, passer en mode Manuel
Les sorties PV haut-bas, PV de fréquence de changement et alarme de déviation haut-bas sont définis sur faux
L’algorithme de contrôle PID n’est pas exécuté
Définir la CV sur la valeur déterminée par contrôle Programme ou Opérateur et le mode (Manuel, Outrepassement ou Portable).
PVSpanInv est vrai ou
SPLimitsInv est vrai
Désactivation les modes Auto et Cascade/Rapport. Si le mode actuel n’est pas le mode Outrepassement ou Portable, passer en mode Manuel
Ne pas calculer le pourcentage PV et SP
L’algorithme de contrôle PID n’est pas exécuté
Définir la CV sur la valeur déterminée par contrôle Programme ou Opérateur et le mode (Manuel, Outrepassement ou Portable).
RatioLimitsInv est vrai et
CasRat est vrai et
UseRatio est vrai
Si les modes Portable ou Outrepassement ne sont pas en cours, définir sur mode Manuel
Désactiver le mode Cascade/Rapport
Définir la CV sur la valeur déterminée par contrôle Programme ou Opérateur et le mode (Manuel, Outrepassement ou Portable).
TimingModeInv est vrai ou
RTSTimeStampInv est vrai ou
DeltaTInv est vrai
Si les modes Portable ou Outrepassement ne sont pas en cours, définir sur mode Manuel
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal