SERVO_INT : fonction de variateur
Traduction de la notice originale
Description de la fonction
La fonction SERVO_INT réalise une régulation avec un actionneur de type moteur piloté par deux sorties TOR (UP et DOWN).
NOTE :
  • La fonction SERVO_INT doit être programmée dans une tâche MAST ou FAST périodique. Cette fonction est inopérante dans une configuration de tâche MAST cyclique. La section de logique contenant cette fonction ne doit pas être soumise à des conditions.
  • Elle doit être obligatoirement connectée en cascade avec la sortie analogique d'un PID. Elle ne peut être utilisée seule.
Lorsqu'une recopie de position existe, un asservissement de la position de la vanne est effectué, à partir des entrées Input_Inp (consigne) et Input_Pot (mesure de position).
Lorsque la recopie n'existe pas physiquement, l'algorithme n'utilise plus la sortie absolue du PID mais la variation de sortie. La sortie Out_Up (ou Out_Down, selon le signe de la variation) est mise à 1 pendant un temps proportionnel au temps d'ouverture de l'actionneur et à la valeur de la variation. De plus, on introduit la notion de temps minimum d'impulsion.
Les paramètres supplémentaires EN et ENO peuvent être configurés.
Représentation en FBD
Représentation :
Représentation en LD
Représentation :
Représentation en IL
Représentation :
LD Input_Inp
SERVO_INT Input_Pot, In_Out_Pid, In_Out_Para, Out_Up, Out_Down
Représentation en ST
Représentation :
SERVO_INT(Input_Inp, Input_Pot, In_Out_Pid, In_Out_Para, Out_Up, Out_Down);
Description des paramètres
Le tableau suivant décrit les paramètres d’entrée :
Paramètre
Type
Commentaire
Input_Inp
Consigne de position (format [0-10000]) à connecter obligatoirement à la sortie du PID.
Input_Pot
Recopie de position (format [0-10000])
0 : vanne fermée ; 10000 : vanne ouverte.
Si la recopie n'existe pas, Input_POT doit être initialisé à -10000. Cette valeur particulière indique l'absence de copie.
Le tableau suivant décrit les paramètres d'entrée/sortie :
Paramètre
Type
Commentaire
In_Out_Pid
ARRAY [n..m] OF INT
n et m sont des entiers positifs, négatifs ou nuls.
Table de paramètres du PID amont, utilisé s'il n'y a pas de mots de recopie pour la synchronisation avec le PID amont.
Tableau de 43 entiers.
In_Out_Para
ARRAY [n..m] OF INT
n et m sont des entiers positifs, négatifs ou nuls.
Les trois premiers paramètres sont utilisés si la recopie n'existe pas (Input_POT = -10000) :
  • In_Out_PARA[0], appelé aussi T_MOTOR, est le temps d’ouverture de la vanne, exprimé en 10-2 s.
  • In_Out_PARA[1], également appelé T_MINI, est l'impulsion minimale exprimée en 10-2 s.
  • In_Out_PARA[2], également appelé HYST est la valeur de l’hystérésis au format [0–10000].
Remarque : les autres paramètres qui sont utilisés pour la gestion interne de la fonction ne doivent jamais être modifiés par l’application. Tous les paramètres sont obligatoires, indépendamment du mode de fonctionnement.
Tableau de 10 entiers.
Le tableau suivant décrit les paramètres de sortie :
Paramètre
Type
Commentaire
Out_Up
Signal de sortie pour le sens de marche Out_Up du moteur.
Out_Down
Signal de sortie pour le sens de marche Out_Down du moteur.
Principe de fonctionnement avec recopie de position
La fonction SERVO_INT effectue un asservissement de la position du moteur en fonction d'une consigne de position Input_Inp (INP) issue de la sortie d'un PID au format [0 – 10000] et d'une mesure de position Input_Pot (POT).
L'algorithme d'asservissement est un relais avec hystérésis.
Dans ce cas, les paramètres PID, T_MOTOR et T_MINI ne sont pas utilisés.
Principe de fonctionnement sans recopie de position (POT= –10000)
Dans ce cas, la fonction SERVO_INT se synchronise avec le PID en amont par le biais de la table des paramètres du PID transmise en paramètre à la fonction SERVO_INT.
L'algorithme reçoit en entrée la variation de sortie du PID et la convertit en durée d'impulsion, selon la formule :
T_IMP (exprimé en 10-3 s) = OUT x T_MOTOR / 1000
La durée obtenue est ajoutée à la durée restante des cycles précédents. En fait, ce qui n'est pas consommé dans un cycle est mémorisé pour les cycles suivants. Ceci garantit un fonctionnement correct, notamment en cas de brusques variations dans la commande (par exemple, division d'échelle de la consigne du PID) et en mode manuel.
Exemple
L’exemple ci-dessous est réalisé en langage à contacts (Ladder) :
Repère
Description
1
La variation de la sortie du PID est +20 % (impulsion de T_MOTOR = 25 s pour une variation de 100 %). Dans ce cas, l'impulsion affecte la sortie UP pendant une durée de 5 s.
2
La variation du PID est de +2 %, ce qui correspondrait à une impulsion de 0,5 s. Cette impulsion est inférieure à T_MINI (=1 s) et n'affecte pas les sorties.
3
Une seconde variation de +2 % apparaît. La fonction cumule cette variation avec la précédente (qui correspondait à une variation inférieure à la valeur minimale), ce qui donne une variation positive globale de +4 %, et donc une impulsion de 1 s sur la sortie UP.
4
Une variation de -24 % apparaît et l'impulsion activée est donc de 6 s sur la sortie DOWN.
5
Avant l'écoulement de la seconde suivante, une autre variation de +22 % ramène le système à une variation globale de 2 %, inférieure à celle de T_MINI (4 %). La fonction termine d'effectuer l'impulsion minimale de 1 s.
Remarque 1 : la fonction SERVO_INT ne gère pas les butées de position. Celles-ci doivent être gérées par l'application. En cas de détection d'une butée, il faut forcer la sortie correspondante à 0 (UP pour la butée haute, DOWN pour la butée basse).
Exemple : en langage LD
Remarque 2 : il est possible de basculer du mot de marche avec recopie vers le mode sans recopie (par exemple, passer en mode sans recopie en cas d'erreur de recopie).