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 :
L'algorithme principal est représenté par l'organigramme suivant :
Il est calculé comme suit :
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 :
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 :
La sortie i_etPidDiag est du type suivant :