0% ont trouvé ce document utile (0 vote)
385 vues16 pages

PID Compact V1

Ce document décrit l'instruction PID_Compact pour la régulation PID dans le contrôleur logique S7-1200. Il explique les paramètres d'entrée et de sortie, le fonctionnement, les algorithmes et les modes de l'instruction PID_Compact.

Transféré par

Foaad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
385 vues16 pages

PID Compact V1

Ce document décrit l'instruction PID_Compact pour la régulation PID dans le contrôleur logique S7-1200. Il explique les paramètres d'entrée et de sortie, le fonctionnement, les algorithmes et les modes de l'instruction PID_Compact.

Transféré par

Foaad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PID_Compact V1 (S7-1200) Page 1 sur 16

PID_Compact V1

Ce chapitre contient des informations sur les thèmes suivants :


Description PID_Compact V1 (S7-1200)
Paramètres d'entrée PID_Compact V1 (S7-1200)
Paramètres de sortie PID_Compact V1 (S7-1200)
Variables statiques PID_Compact v1 (S7-1200)
Paramètres State et sRet.i_Mode V1 (S7-1200)
Paramètre Error V1 (S7-1200)
Paramètre Reset V1 (S7-1200)
Variable sd_warning V1 (S7-1200)
Variable i_Event_SUT V1 (S7-1200)
Variable i_Event_TIR V1 (S7-1200)

Description PID_Compact V1
Description
L'instruction PID_Compact met à disposition un régulateur PID avec optimisation intégrée pour les modes automatique et
manuel.

Appel
L'appel de l'instruction PID_Compact s'effectue durant l'intervalle de temps constant du temps de cycle de l'OB appelant (de
préférence dans un OB d'alarme cyclique).

Chargement dans l'appareil


Les valeurs effectives de variables rémanentes ne sont actualisées que si vous chargez entièrement PID_Compact.
Charger des objets technologiques dans l'appareil

Démarrage
PID_Compact est démarrée dans le dernier mode de fonctionnement actif lors du démarrage de la CPU. Pour laisser PID_
Compact en mode "Inactif", mettez sb_RunModeByStartup = FALSE.

Surveillance du temps d'échantillonnage PID_Compact


Le temps d'échantillonnage correspond idéalement au temps de cycle de l'OB appelant. L'instruction PID_Compact permet
de mesurer l'intervalle de temps entre deux appels respectifs. Le résultat est le temps d'échantillonnage actuel. Lors de
chaque changement du mode de fonctionnement et à la première mise en route, une moyenne est calculée à partir des 10
premiers temps d'échantillonnage. Si le temps d'échantillonnage actuel diverge trop de cette moyenne, une erreur survient
(Error = 0800 hex) et PID_Compact passe en mode de fonctionnement "Inactif".
Les conditions suivantes font passer, à partir de la version 1.1, PID_Compact en mode de fonctionnement "Inactif" pendant
l'optimisation :
Nouvelle valeur moyenne >= 1,1 x ancienne valeur moyenne
Nouvelle valeur moyenne <= 0,9 x ancienne valeur moyenne

Les conditions suivantes font passer, à partir de la version 1.1, PID_Compact en mode de fonctionnement "Inactif" en cas
de mode automatique :
Nouvelle valeur moyenne >= 1,5 x ancienne valeur moyenne
Nouvelle valeur moyenne <= 0,5 x ancienne valeur moyenne

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 2 sur 16

Les conditions suivantes font passer PID_Compact 1.0 en mode de fonctionnement "Inactif" pendant l'optimisation et en
mode automatique :
Nouvelle valeur moyenne >= 1,1 x ancienne valeur moyenne
Nouvelle valeur moyenne <= 0,9 x ancienne valeur moyenne
Temps d'échantillonnage actuel >= 1,5 x valeur moyenne actuelle
Temps d'échantillonnage actuel <= 0,5 x valeur moyenne actuelle

Temps d'échantillonnage de l'algorithme PID


Comme le système réglé nécessite un certain temps pour réagir à une modification de la valeur de réglage, il est judicieux
de ne pas calculer cette valeur à chaque cycle. Le temps d'échantillonnage de l'algorithme PID est le temps entre deux
calculs de valeurs de réglage. Il est déterminé pendant l'optimisation et arrondi à un multiple du temps de cycle. Toutes les
autres fonctions de PID_Compact sont exécutées lors de chaque appel.

Algorithme PID
PID_Compact est un régulateur PIDT1 avec anti-saturation et pondération de l'action P et D. La valeur de réglage est
calculée avec la formule suivante :

Symbole Description
y Valeur de réglage

Kp Gain proportionnel
s Opérateur de Laplace
b Pondération de l'action P

w Consigne
x Mesure
TI Temps d'intégration
a Coefficient pour l'action par dérivation (T1 = a × TD)
Temps de dérivation
c Pondération de l'action D

Schéma fonctionnel PID_Compact

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 3 sur 16

Schéma fonctionnel PIDT1 avec anti-saturation

Comportement en cas d'erreur


Si des erreurs surviennent, elles sont affichées au niveau du paramètre Error et PID_Compact passe au mode de
fonctionnement "Inactif". Le paramètre Reset permet de remettre à 0 toutes les erreurs.

Sens de régulation
La plupart du temps, une augmentation de la mesure doit être atteinte avec une augmentation de la valeur de réglage.
Dans ce cas, on parle d'un sens de régulation normal. Il peut être nécessaire d'inverser le sens de régulation pour les
refroidissements et les régulations d'écoulement. PID_Compact ne fonctionne pas avec un gain proportionnel négatif. Si
InvertControl = TRUE, un signal d'écart croissant provoque une diminution de la valeur de réglage. Le sens de régulation
est pris en compte aussi pendant l'optimisation préalable et l'optimisation fine.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 4 sur 16

Paramètres d'entrée PID_Compact V1

Paramètre Type de Valeur par Description


données défaut

Setpoint REAL 0.0 Consigne du régulateur PID en mode automatique

Input REAL 0.0 Une variable du programme utilisateur est utilisée comme source de
la mesure.
Si vous utilisez le paramètre Input, il faut que
sPid_Cmpt.b_Input_PER_On = FALSE.

Input_PER WORD W#16#0 Entrée analogique comme source de la mesure


Si vous utilisez le paramètre Input_PER, il faut que
sPid_Cmpt.b_Input_PER_On = TRUE.

ManualEnable BOOL FALSE Le front FALSE -> TRUE sélectionne le mode de fonctionnement


"Mode manuel", State = 4, sRet.i_Mode ne change pas.
Le front TRUE -> FALSE sélectionne le dernier mode de
fonctionnement actif, State =sRet.i_Mode
Pendant ManualEnable = TRUE, une modification de sRet.i_Mode
n'a pas d'effet. La modification de sRet.i_Mode est prise en compte
seulement au front TRUE -> FALSE à ManualEnable .
PID_Compact V1.2 und PID_Compact V1.0
Lorsque ManualEnable = TRUE au démarrage de la CPU,
PID_Compact démarre en mode manuel. Un front montant
(FALSE > TRUE) de ManualEnable n'est pas nécessaire.
PID_Compact V1.1
PID_Compact ne passe en mode manuel au démarrage de la CPU
que s'il y a un front montant (FALSE->TRUE) de ManualEnable . En
l'absence de ce front montant, PID_Compact démarre dans le dernier
mode pour lequel ManualEnable était FALSE.

ManualValue REAL 0.0 Valeur manuelle


Cette valeur est utilisée comme valeur de réglage en mode manuel.

Reset BOOL FALSE Le paramètre Reset effectue un redémarrage du régulateur.

Paramètres de sortie PID_Compact V1

Parameter Type de Valeur par Description


données défaut

ScaledInput REAL 0.0 Sortie de la mesure mise à l'échelle

Les sorties "Output", "Output_PER" et "Output_PWM" peuvent être utilisées en parallèle.

Output REAL 0.0 Valeur de réglage au format REAL

Output_PER WORD W#16#0 Valeur de réglage analogique

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 5 sur 16

Output_PWM BOOL FALSE Valeur de réglage modulée en largeur d'impulsion


La valeur de réglage est calculée au moyen de temps d'activation
et de désactivation variables.

SetpointLimit_H BOOL FALSE Quand SetpointLimit_H = TRUE, la limite supérieure absolue de la


consigne est atteinte. Dans la CPU, la consigne est limitée à la
limite supérieure absolue configurée pour la consigne. La limite
supérieure par défaut de la consigne est la limite supérieure
absolue configurée pour la mesure.
Si vous affectez à sPid_Cmpt.r_Sp_Hlm une valeur dans les limites
de la mesure, cette valeur sera utilisée comme limite supérieure de
la consigne.

SetpointLimit_L BOOL FALSE Quand SetpointLimit_L = TRUE, la limite inférieure absolue de la


consigne est atteinte. Dans la CPU, la consigne est limitée à la
limite inférieure absolue configurée pour la consigne. La limite
inférieure par défaut de la consigne est la limite inférieure absolue
configurée pour la mesure.
Si vous affectez à sPid_Cmpt.r_Sp_Llm une valeur dans les limites
de la mesure, cette valeur sera utilisée comme limite inférieure de
la consigne.

InputWarning_H BOOL FALSE Si InputWarning_H = TRUE, la limite d'alerte supérieure de la


mesure est atteinte ou dépassée.

InputWarning_L BOOL FALSE Si InputWarning_L = TRUE, la limite d'alerte inférieure de la


mesure est atteinte ou dépassée.

State INT 0 Le paramètre State affiche le mode de fonctionnement actuel du


régulateur PID. La variable sRet.i_Mode vous permet de modifier le
mode de fonctionnement.
State = 0 : inactif
State = 1 : optimisation préalable
State = 2 : optimisation fine
State = 3 : mode automatique
State = 4 : mode manuel

Error DWORD W#16#0 Le paramètre Error affiche les messages d'erreur.


Error = 0000 : pas de présence d'erreur.

Variables statiques PID_Compact v1


Ne modifiez pas les variables qui ne sont pas mentionnées. Elles ne sont utilisées qu'en interne.

Variable Type de Valeur par Description


données défaut

sb_GetCycleTime BOOL TRUE Si sb_GetCycleTime = TRUE, la détermination


automatique du temps de cycle est lancée. Après
la fin de la mesure, on a
[Link] = FALSE.

sb_EnCyclEstimation BOOL TRUE Si sb_EnCyclEstimation = TRUE, le temps

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 6 sur 16

d'échantillonnage PID_Compact est calculé.

sb_EnCyclMonitoring BOOL TRUE Si sb_EnCyclMonitoring = FALSE, le temps


d'échantillonnage PID_Compact n'est pas
surveillé. Si PID_Compact n'est pas exécutée
pendant le temps d'échantillonnage, aucune
erreur 0800 n'est affichée et PID_Compact ne
passe pas au mode de fonctionnement "Inactif".

sb_RunModeByStartup BOOL TRUE Activer le dernier mode de fonctionnement après


le démarrage de la CPU
Si sb_RunModeByStartup = FALSE, le régulateur
reste inactif après la mise en route de la CPU.
Si sb_RunModeByStartup = TRUE, le régulateur
repasse au dernier mode de fonctionnement
après la mise en route de la CPU.

si_Unit INT 0 Unité physique de la mesure et de la consigne,


par ex. ºC ou ºF.

si_Type INT 0 Grandeur physique de la mesure et de la


consigne, par ex. température.

sd_Warning DWORD DW#16#0 La variable sd_warning affiche les alertes depuis


la remise à 0 ou le dernier changement du mode
de fonctionnement.

sBackUp.r_Gain REAL 1.0 Gain proportionnel enregistré


Il est possible de recharger les valeurs de la
structure sBackUp avec
sPid_Cmpt.b_LoadBackUp = TRUE.

sBackUp.r_Ti REAL 20.0 Temps d'intégration enregistré [s]

sBackUp.r_Td REAL 0.0 Temps de dérivation enregistré [s]

sBackUp.r_A REAL 0.0 Coefficient de l'action par dérivation enregistré

sBackUp.r_B REAL 0.0 Facteur de pondération de l'action P enregistré

sBackUp.r_C REAL 0.0 Facteur de pondération de l'action D enregistré

sBackUp.r_Cycle REAL 1.0 Temps d'échantillonnage enregistré de


l'algorithme PID

sPid_Calc.r_Cycle REAL 0.1 Temps d'échantillonnage de l'instruction


PID_Compact
r_Cycle est automatiquement déterminée et
correspond normalement au temps de cycle de
l'OB appelant.

sPid_Calc.b_RunIn BOOL FALSE b_RunIn = FALSE


Si l'optimisation fine est démarrée depuis le
mode inactif ou manuel, une optimisation
préalable est lancée. Si les conditions d'une
optimisation préalable ne sont pas réunies,
PID_Compact a le même comportement que
lorsque b_RunIn = TRUE.
Si l'optimisation fine est démarrée depuis le

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 7 sur 16

mode automatique, les paramètres PID


existants sont utilisés pour un réglage sur la
consigne.
C'est seulement après cela que l'optimisation
fine commence. Si l'optimisation préalable
n'est pas possible, PID_Compact passe en
mode de fonctionnement "Inactif".
b_RunIn = TRUE
L'optimisation préalable est sautée.
PID_3Compact essaie d'atteindre la consigne
avec la valeur de réglage mini ou maxi. Cela
peut entraîner une suroscillation élevée.
L'optimisation fine démarre ensuite
automatiquement.
b_RunIn est mis sur FALSE après
l'optimisation fine.

sPid_Calc.b_CalcParamSUT BOOL FALSE Si b_CalcParamSUT = TRUE, les paramètres


pour l'optimisation préalable sont recalculés. Cela
permet de modifier la méthode de calcul de
paramètres sans répéter l'optimisation.
b_CalcParamSUT est mis sur FALSE après le
calcul.

sPid_Calc.b_CalcParamTIR BOOL FALSE Si b_CalcParamTIR = TRUE, les paramètres pour


l'optimisation fine sont recalculés. Cela permet de
modifier la méthode de calcul de paramètres sans
répéter l'optimisation.
b_CalcParamTIR est mis sur FALSE après le
calcul.

sPid_Calc.i_CtrlTypeSUT INT 0 Calculer les paramètres pendant l'optimisation


préalable selon la méthode :
i_CtrlTypeSUT = 0 : PID selon Chien, Hrones
et Reswick
i_CtrlTypeSUT = 1 : PI selon Chien, Hrones et
Reswick

sPid_Calc.i_CtrlTypeTIR INT 0 Calculer les paramètres pendant l'optimisation


fine selon la méthode :
i_CtrlTypeTIR = 0 : PID automatique
i_CtrlTypeTIR = 1 : PID rapide
i_CtrlTypeTIR = 2 : PID lent
i_CtrlTypeTIR = 3 : PID Ziegler-Nichols
i_CtrlTypeTIR = 4 : PI Ziegler-Nichols
i_CtrlTypeTIR = 5 : P Ziegler-Nichols

sPid_Calc.r_Progress REAL 0.0 Progrès de l'optimisation en % (0.0 à 100.0)

sPid_Cmpt.r_Sp_Hlm REAL +3.402822e+38 Limite supérieure de la consigne


Quand vous configurez sPid_Cmpt.r_Sp_Hlm en
dehors des limites de la mesure, la limite
supérieure absolue configurée pour la mesure est
utilisée comme limite supérieure de la consigne.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 8 sur 16

Si vous configurez sPid_Cmpt.r_Sp_Hlm dans les


limites de la mesure, cette valeur sera utilisée
comme limite supérieure de la consigne.

sPid_Cmpt.r_Sp_Llm REAL -3.402822e+38 Limite inférieure de la consigne


Quand vous configurez sPid_Cmpt.r_Sp_Llm en
dehors des limites de la mesure, la limite
inférieure absolue configurée pour la mesure est
utilisée comme limite inférieure de la consigne.
Si vous configurez sPid_Cmpt.r_Sp_Llm dans les
limites de la mesure, cette valeur sera utilisée
comme limite inférieure de la consigne.

sPid_Cmpt.r_Pv_Norm_IN_1 REAL 0.0 Mise à l'échelle Input_PER Bas


Input_PER est converti en pourcentage à l'aide
des deux couples de valeurs r_Pv_Norm_OUT_1,
r_Pv_Norm_IN_1 et r_Pv_Norm_OUT_2,
r_Pv_Norm_IN_2 de la structure sPid_Cmpt.

sPid_Cmpt.r_Pv_Norm_IN_2 REAL 27648.0 Mise à l'échelle Input_PER Haut


Input_PER est converti en pourcentage à l'aide
des deux couples de valeurs r_Pv_Norm_OUT_1,
r_Pv_Norm_IN_1 et r_Pv_Norm_OUT_2,
r_Pv_Norm_IN_2 de la structure sPid_Cmpt.

sPid_Cmpt.r_Pv_Norm_OUT_1 REAL 0.0 Mesure inférieure à l'échelle


Input_PER est converti en pourcentage à l'aide
des deux couples de valeurs r_Pv_Norm_OUT_1,
r_Pv_Norm_IN_1 et r_Pv_Norm_OUT_2,
r_Pv_Norm_IN_2 de la structure sPid_Cmpt.

sPid_Cmpt.r_Pv_Norm_OUT_2 REAL 100.0 Mesure supérieure à l'échelle


Input_PER est converti en pourcentage à l'aide
des deux couples de valeurs r_Pv_Norm_OUT_1,
r_Pv_Norm_IN_1 et r_Pv_Norm_OUT_2,
r_Pv_Norm_IN_2 de la structure sPid_Cmpt.

sPid_Cmpt.r_Lmn_Hlm REAL 100.0 Limite supérieure de la valeur de réglage pour le


paramètre de sortie "Output"

sPid_Cmpt.r_Lmn_Llm REAL 0.0 Limite inférieure de la valeur de réglage pour le


paramètre de sortie "Output"

sPid_Cmpt.b_Input_PER_On BOOL TRUE Si b_Input_PER_On = TRUE, c'est le paramètre


Input_PER qui est utilisé. Si
b_Input_PER_On = FALSE, c'est le paramètre
Input qui est utilisé.

sPid_Cmpt.b_LoadBackUp BOOL FALSE Activation du jeu de paramètres de sauvegarde.


En cas d'échec d'une optimisation, la mise à 1 de
ce bit permet de réactiver les paramètres PID
précédents.

sPid_Cmpt.b_InvCtrl BOOL FALSE Inversion du sens de régulation


Si b_InvCtrl = TRUE, un signal d'écart croissant
provoque une diminution de la valeur de réglage.

sPid_Cmpt.r_Lmn_Pwm_PPTm REAL 0.0 Plus petit temps ON en secondes de la

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 9 sur 16

modulation de largeur d'impulsions, arrondi à


r_Lmn_Pwm_PPTm = r_Cycle ou
r_Lmn_Pwm_PPTm = n*r_Cycle

sPid_Cmpt.r_Lmn_Pwm_PBTm REAL 0.0 Plus petit temps OFF en secondes de la


modulation de largeur d'impulsions, arrondi à
r_Lmn_Pwm_PBTm = r_Cycle ou
r_Lmn_Pwm_PBTm = n*r_Cycle

sPid_Cmpt.r_Pv_Hlm REAL 120.0 Limite supérieure de la mesure


A l’entrée de périphérie, la mesure peut dépasser
de 18 % au plus la plage normée (dépassement
haut). Un dépassement de la "limite supérieure de
la mesure" ne provoque plus le signalement d'une
erreur. Seuls la rupture de fil et le court-circuit
sont détectés et PID_Compact passe en mode
"Inactif".
r_Pv_Hlm > r_Pv_Llm

sPid_Cmpt.r_Pv_Llm REAL 0.0 Limite inférieure de la mesure


r_Pv_Llm < r_Pv_Hlm

sPid_Cmpt.r_Pv_HWrn REAL +3.402822e+38 Limite d'alerte supérieure de la mesure


Quand vous configurez r_Pv_HWrn en dehors des
limites de la mesure, la limite supérieure absolue
configurée pour la mesure est utilisée comme
limite d'alerte supérieure.
Si vous configurez r_Pv_HWrn dans les limites de
la mesure, cette valeur sera utilisée comme limite
d'alerte supérieure.
r_Pv_HWrn > r_Pv_LWrn
r_Pv_HWrn ≤ r_Pv_Hlm

sPid_Cmpt.r_Pv_LWrn REAL -3.402822e+38 Limite d'alerte inférieure de la mesure


Quand vous configurez r_Pv_LWrn en dehors des
limites de la mesure, la limite inférieure absolue
configurée pour la mesure est utilisée comme
limite d'alerte inférieure.
Si vous configurez r_Pv_LWrn dans les limites de
la mesure, cette valeur sera utilisée comme limite
d'alerte inférieure.
r_Pv_LWrn < r_Pv_HWrn
r_Pv_LWrn ≥ r_Pv_LWrn

sParamCalc.i_Event_SUT INT 0 La variable i_Event_SUT affiche la phase actuelle


de "l'optimisation préalable" :

sParamCalc.i_Event_TIR INT 0 La variable i_Event_TIR affiche la phase actuelle


de "l'optimisation fine" :

sRet.i_Mode INT 0 Le changement de mode de fonctionnement est


commandé par le front.
Le mode de fonctionnement suivant est activé lors
du passage à
i_Mode = 0 : mode de fonctionnement

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 10 sur 16

"Inactif" (arrêt du régulateur)


i_Mode = 1 : mode de fonctionnement
"Optimisation préalable"
i_Mode = 2 : mode de fonctionnement
"Optimisation fine"
i_Mode = 3 : mode de fonctionnement "Mode
automatique"
i_Mode = 4 : mode de fonctionnement "Mode
manuel"
i_Mode est rémanent.

sRet.r_Ctrl_Gain REAL 1.0 Gain proportionnel actif


Gain est rémanent.

sRet.r_Ctrl_Ti REAL 20.0 r_Ctrl_Ti > 0.0 : temps d'intégration actif


r_Ctrl_Ti = 0.0 : action I est désactivée
r_Ctrl_Ti est rémanent.

sRet.r_Ctrl_Td REAL 0.0 r_Ctrl_Td > 0.0 : temps de dérivation actif


r_Ctrl_Td = 0.0 : action D est désactivée
r_Ctrl_Td est rémanent.

sRet.r_Ctrl_A REAL 0.0 Coefficient actif de l'action par dérivation


r_Ctrl_A est rémanent.

sRet.r_Ctrl_B REAL 0.0 Pondération active de l'action P


r_Ctrl_B est rémanent.

sRet.r_Ctrl_C REAL 0.0 Pondération active de l'action D


r_Ctrl_C est rémanent.

sRet.r_Ctrl_Cycle REAL 1.0 Temps d'échantillonnage actif de l'algorithme PID


r_Ctrl_Cycle est déterminé pendant l'optimisation
et arrondi à un multiple entier de r_Cycle.
r_Ctrl_Cycle est rémanent.

Remarque
Faites passer les variables de la présente liste en mode de fonctionnement "Inactif" pour éviter un comportement erroné
du régulateur PID. Vous forcez le mode de fonctionnement "Inactif" en mettant la variable "sRet.i_Mode" à "0".

Paramètres State et sRet.i_Mode V1


Corrélation entre les paramètres
Le paramètre State affiche le mode de fonctionnement actuel du régulateur PID. Vous ne pouvez pas modifier le paramètre
State.
Pour changer de mode de fonctionnement, vous devez modifier la variable sRet.i_Mode. Ceci est valable également lorsque
la valeur pour le nouveau mode de fonctionnement figure déjà dans sRet.i_Mode. Dans ce cas, réglez d'abord sRet.i_Mode
= 0 puis ensuite sRet.i_Mode = 3. Si le mode de fonctionnement actuel autorise ce changement, State est mis sur la valeur
de sRet.i_Mode.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 11 sur 16

Si PID_Compact change automatiquement le mode de fonctionnement, alors : State != sRet.i_Mode.


Exemples :
Optimisation préalable réussie
State = 3 et sRet.i_Mode = 1
En cas d'erreur
State = 0 et sRet.i_Mode reste à la valeur en cours, par exemple sRet.i_Mode = 3
ManualEnalbe = TRUE
State = 4 et sRet.i_Mode reste à la valeur en cours, par exemple sRet.i_Mode = 3

Remarque
Vous souhaitez par exemple répéter une optimisation fine réussie sans terminer le mode de fonctionnement
automatique avec i_Mode = 0.
Si vous mettez sRet.i_Mode à une valeur non valide pour un cycle, par exemple 9999, cela n'a aucun effet sur State. Au
cycle suivant, vous réglez Mode = 2. Vous pouvez ainsi obtenir une modification de sRet.i_Mode sans passer d'abord
au mode de fonctionnement "Inactif".

Signification des valeurs

State / Description du mode de fonctionnement


sRet.i_Mode

0 Inactif
Le régulateur est arrêté.
Avant la réalisation d'une optimisation préalable, le régulateur est en mode de fonctionnement "Inactif".
Durant le fonctionnement, le régulateur PID passe au mode de fonctionnement "Inactif" si une erreur
survient ou si vous cliquez sur l'icône "Désactiver le régulateur" dans la fenêtre de mise en route.

1 Optimisation préalable
L'optimisation préalable détermine la réponse du processus à un échelon de la valeur de réglage et
recherche le point d'inflexion. Les paramètres PID optimisés sont calculés à partir de l'incrémentation
maximale et du temps mort du système réglé.
Conditions pour une optimisation préalable :
le régulateur se trouve en mode de fonctionnement Inactif ou Mode manuel.
ManualEnable = FALSE
La mesure ne doit pas être trop proche de la consigne.
|Setpoint - Input| > 0.3 * |sPid_Cmpt.r_Pv_Hlm - sPid_Cmpt.r_Pv_Llm| et
|Setpoint - Input| > 0.5 * |Setpoint|
La consigne ne doit pas être modifiée pendant l'optimisation préalable.
Plus la mesure est stable, plus il sera facile de déterminer des paramètres PID précis. Un bruit de la
mesure est acceptable tant que la croissance de la mesure est nettement supérieure au bruit.
Avant que les paramètres PID soient recalculés, ils sont sauvegardés et peuvent être réactivés avec
sPid_Cmpt.b_LoadBackUp.
Après une optimisation préalable réussie, le mode de fonctionnement passe en automatique ; si
l'optimisation préalable échoue, le mode de fonctionnement passe au mode "Inactif".
La phase d'optimisation préalable est indiquée par Variable i_Event_SUT V1.

2 Optimisation fine
L'optimisation fine génère une oscillation constante limitée de la mesure. Les paramètres PID sont
optimisés à partir de l'amplitude et de la fréquence de cette oscillation. Les différences entre la réponse
du processus pendant l'optimisation préalable et l'optimisation fine sont analysées. Tous les paramètres
PID sont recalculés à partir des résultats. Les paramètres PID de l'optimisation fine montrent
généralement un meilleur comportement de référence et de perturbation que les paramètres PID de

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 12 sur 16

l'optimisation préalable.
PID_Compact essaie automatiquement de créer une oscillation supérieure au bruit de la mesure. La
stabilité de la mesure n'influence l'optimisation fine que de manière insignifiante.
Avant que les paramètres PID soient recalculés, ils sont sauvegardés et peuvent être réactivés avec
sPid_Cmpt.b_LoadBackUp.
Conditions pour une optimisation fine :
Aucune perturbation n'est attendue.
La consigne et la mesure sont dans les limites configurées
La consigne ne doit pas être modifiée pendant l'optimisation fine.
ManualEnable = FALSE
Mode automatique (State = 3), inactif (State = 0) ou mode manuel (State = 4)
L'optimisation fine se déroule de la manière suivante au démarrage :
Mode automatique (State = 3)
Si vous souhaitez améliorer les paramètres PID existants à l'aide de l'optimisation, démarrez
l'optimisation fine à partir du mode automatique.
PID_Comact effectue un réglage avec les paramètres PID existants jusqu'à ce que la boucle de
régulation soit en régime stationnaire et que les conditions pour une optimisation fine soient
remplies. C'est seulement après cela que l'optimisation fine commence.
Inactif (State = 0) ou mode manuel (State = 4)
Une optimisation préalable est lancée lorsque les conditions correspondantes sont réunies. Un
réglage a lieu avec les paramètres PID déterminés jusqu'à ce que la boucle de régulation soit en
régime stationnaire et que les conditions pour une optimisation fine soient remplies. C'est seulement
après cela que l'optimisation fine commence. Si l'optimisation préalable n'est pas possible,
PID_Compact passe en mode de fonctionnement "Inactif".
Quand la mesure est déjà trop proche de la consigne pour une optimisation préalable ou que
sPid_Calc.b_RunIn = TRUE, le système essaie d'atteindre la consigne avec la valeur de réglage
mini ou maxi. Cela peut entraîner une suroscillation élevée.
Après avoir effectué correctement une "optimisation fine", le régulateur passe au mode de
fonctionnement "Mode automatique" ; en cas d'échec de "l'optimisation fine", il passe au mode "Inactif".
La phase d'"optimisation fine" est affichée avec la Variable i_Event_TIR V1.

3 Mode automatique
En mode automatique, PID_Compact régule le système réglé en fonction des paramètres prédéfinis.
Si l'une des conditions préalables suivantes est remplie, le système passe au mode automatique :
Optimisation préalable réussie
Optimisation fine réussie
Modification de la variable sRet.i_Mode sur la valeur 3.
Quand la CPU est mise en route ou passe de STOP à RUN, PID_Compact démarre dans le dernier
mode de fonctionnement actif. Pour laisser PID_Compact en mode "Inactif", mettez
sb_RunModeByStartup = FALSE.

4 Mode manuel
En mode manuel, vous spécifiez une valeur de réglage manuelle au paramètre ManualValue.
Ce mode de fonctionnement est activé si sRet.i_Mode = 4 ou en cas de front montant sur
ManualEnable. Si ManualEnable = TRUE, seul State est modifié. sRet.i_Mode reste sur la même
valeur. En cas de front descendant sur ManualEnable, PID_Compact repasse au mode de
fonctionnement précédent.
Le passage au mode automatique s'effectue sans à-coups.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 13 sur 16

Paramètre Error V1
En présence de plusieurs erreurs simultanées, les valeurs des codes d'erreur s'affichent comme addition binaire.
L'affichage du code d'erreur 0003, par ex., indique la présence simultanée des erreurs 0001 et 0002.

Error Description
(DW#16#...)

0000 Pas de présence d'erreur.

0001 Le paramètre "Input" se trouve en dehors des limites de la mesure.


Input > sPid_Cmpt.r_Pv_Hlm ou
Input < sPid_Cmpt.r_Pv_Llm
Vous ne pourrez déplacer à nouveau l'actionneur qu'après avoir éliminé l'erreur.

0002 Valeur invalide au paramètre "Input_PER". Vérifiez si une erreur est présente à l'entrée analogique.

0004 Erreur pendant l'optimisation fine. L'oscillation de la mesure n'a pas pu être maintenue.

0008 Erreur lors du démarrage de l'optimisation préalable. La mesure est trop proche de la consigne.
Démarrez l'optimisation fine.

0010 La consigne a été modifiée durant l'optimisation.

0020 L'optimisation préalable n'est pas autorisée en mode automatique et pendant l'optimisation fine.

0080 Les limites de la valeur de réglage ne sont pas configurées correctement.


Vérifiez si les limites de la valeur de réglage sont configurées correctement et conviennent au sens
de régulation.

0100 Une erreur durant l'optimisation a conduit à des paramètres invalides.

0200 Valeur invalide au paramètre "Input" : Le format numérique de la valeur est invalide.

0400 Le calcul de la valeur de réglage a échoué. Vérifiez les paramètres PID.

0800 Erreur de temps d'échantillonnage : PID_Compact n'est pas appelé pendant le temps
d'échantillonnage de l'OB d'alarme cyclique.

1000 Valeur invalide au paramètre "Setpoint" : Le format numérique de la valeur est invalide.

Paramètre Reset V1
Le comportement si Reset = TRUE dépend de la version de l'instruction PID_Compact.

Comportement Reset PID_Compact à partir de V.1.1


Un front montant sur Reset remet à zéro les erreurs et les avertissements et supprime l'action I. Un front descendant sur
Reset fait passer au dernier mode de fonctionnement actif.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 14 sur 16

① Activation

② Erreur

③ Reset

Comportement Reset PID_Compact V.1.0


Un front montant sur Reset remet à zéro les erreurs et les avertissements et supprime l'action I. Le régulateur n'est réactivé
que par un front sur i_Mode.

① Activation

② Erreur

③ Reset

Variable sd_warning V1
En présence simultanée de plusieurs alertes, les valeurs des variables sd_warning sont affichées sous forme d'addition
binaire. Si l'alerte affiche 0003 p. ex., cela indique la présence simultanée des alertes 0001 et 0002.

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 15 sur 16

sd_warning Description
(DW#16#....)

0000 Aucune alerte n'est présente.

0001 Le point d'inflexion n'a pas été trouvé pendant l'optimisation préalable.

0002 L'oscillation était renforcée pendant l'optimisation fine.

0004 La consigne se trouvait en dehors des limites paramétrées.

0008 Toutes les propriétés nécessaires du système réglé n'ont pas été déterminées pour la méthode de
calcul choisie. Les paramètres PID ont été calculés avec la méthode "i_CtrlTypeTIR = 3" à titre de
remplacement.

0010 Impossible de modifier le mode de fonctionnement car ManualEnable = TRUE

0020 Le temps d'échantillonnage de l'algorithme PID est limité par le temps de cycle de l'OB appelant.
Afin d'obtenir de meilleurs résultats, utilisez des temps de cycle de l'OB plus courts.

0040 La mesure a dépassé l'une de ses limites d'alerte.

Les alarmes suivantes sont supprimées dès que la cause est éliminée :
0004
0020
0040

Toutes les autres alarmes sont supprimées avec un front montant sur Reset.

Variable i_Event_SUT V1

i_Event_SUT Nom Description

0 SUT_INIT Initialiser l'optimisation préalable

100 SUT_STDABW Calculer divergence standard

200 SUT_GET_POI Déterminer point d'inflexion

9900 SUT_IO Optimisation préalable réussie

1 SUT_NIO Optimisation préalable échouée

Variable i_Event_TIR V1

i_Event_TIR Nom Description

-100 TIR_FIRST_SUT L'optimisation fine n'est pas possible. Une optimisation préalable est d'abord
réalisée.

0 TIR_INIT Initialiser l'optimisation fine

[Link] 18/09/2014
PID_Compact V1 (S7-1200) Page 16 sur 16

200 TIR_STDABW Calculer divergence standard

300 TIR_RUN_IN Tentative d'atteindre la consigne

400 TIR_CTRLN Essayer d'atteindre la consigne avec les paramètres PID existants
(si l'optimisation préalable a réussi)

500 TIR_OSZIL Déterminer oscillation et calculer paramètres

9900 TIR_IO Optimisation fine réussie

1 TIR_NIO Optimisation fine échouée

[Link] 18/09/2014

Vous aimerez peut-être aussi