FB_PID : bloc fonction PID

Vue d'ensemble

Le bloc fonction FB_PID fournit un contrôleur PID 

Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_PID :

G-SE-0033412.1.jpg

 

 

L'algorithme principal est représenté par l'organigramme suivant :

G-SE-0032380.1.gif-high.gif

 

 

Il est calculé comme suit :

G-SE-0032381.1.gif-high.gif

 

 

Bien qu'une constante de temps dérivée Td nulle désactive la branche dérivée du contrôleur PID, un gain proportionnel Kp de 0 est interdit. Cela entraînerait un gain de 100 %.

La définition d'une constante de temps intégrale Ti nulle permet de passer à une autre règle de calcul :

G-SE-0032382.1.gif-high.gif

 

 

Cela permettrait de centrer le signal de sortie analogique qui se trouve dans la plage [0..10000].

La valeur mesurée peut être convertie en une plage de valeurs paramétrées. Cette nouvelle plage est alors appliquée au point de consigne ainsi qu'aux niveaux d'alarme de mesure.

Dans chaque cas, la sortie figure dans la plage [0..10000] mais peut être limitée.

Description des variables d'E/S

Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport :

Entrée

Type de données

Description

i_iMeasure

INT

Variable de contrôle [1 à 10000]

i_iSetpoint

INT

Point de consigne de l'automate [1..10000] ou [min configuré..max configuré]

i_etOpMode

ET_PidOpMode

PID / PI - Dans le cas d'un PID, elle peut être remplacée par etCorrectorType pour assurer la compatibilité.

i_xMeasConversion

BOOL

Active la conversion des valeurs mesurées aux limites données, de [0 à 10000] en [i_iConversionMin à i_iConversionMax].

i_iConversionMin

INT

Conversion de la valeur minimale.

i_iConversionMax

INT

Conversion de la valeur maximale.

i_xMeasAlarm

BOOL

Active les alarmes de la plage de valeurs mesurée.

i_iAlarmHigh

INT

Valeur haute de seuil d'alarme pour q_iAnalogOutput.

i_iAlarmLow

INT

Valeur basse de seuil d'alarme pour q_iAnalogOutput.

i_iKp

INT

Facteur de gain proportionnel

i_iTi

INT

Constante de temps intégrale

i_iTd

INT

Constante de temps dérivée (ignorée dans le cas de PI)

i_xDirectOutput

BOOL

TRUE : action directe

FALSE : action inverse

i_xLimitOutput

BOOL

Active la limite de sortie.

i_iLimitMin

INT

Limite inférieure de sortie

i_iLimitMax

INT

Limite supérieure de sortie

i_iPWMPeriod

INT

Signal PWM

Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport :

Sortie

Type de données

Description

q_iAnalogOutput

INT

Sortie numérique de l'automate à convertir en analogique [1 à 10000]

q_rDutyCycleOutput

REAL

Réduction à une valeur [0 à 1] pouvant être attribuée à un module PWM manuellement.

q_xPWM

BOOL

Sortie PWM générée par voie logicielle

q_xMeasureValueLowAlarm

BOOL

Surveillance de la variable de pilotage.

Réglé sur 1 si le niveau d'alarme bas n'est pas atteint.

q_xMeasureValueHighAlarm

BOOL

Surveillance de la variable de pilotage.

Réglé sur 1 si le niveau d'alarme haut est dépassé.

q_etPidDiag

ET_PidDiag

Code de diagnostic émis par le contrôleur PID

q_sMsg

STRING

Message de diagnostic

La configuration du bloc PID dans EcoStruxure Machine Expert - Basic fournit la ///période d'échantillonnage de paramètres supplémentaires (dans l'onglet PID de l'Assistant PID). La période d'échantillonnage est le temps de cycle de la tâche qui exécute le bloc PID. Pour s'assurer que le signal au niveau de q_xPWM est correctement généré, la période i_iPWMPeriod configurée doit être un multiple du temps d'échantillonnage. Une période PWM nulle désactive la génération de signal.

L'entrée i_etOpMode est du type suivant :

G-SE-0032386.1.gif-high.gif

 

 

La sortie i_etPidDiag est du type suivant :

G-SE-0032387.1.gif-high.gif