Position proportionnelle (POSP)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.L'instruction Position proportionnelle (Position Proportional, POSP) ouvre ou ferme un dispositif en donnant une impulsion d'ouverture ou de fermeture des contacts selon un cycle défini par l'utilisateur avec une largeur d'impulsion proportionnelle à la différence entre les positions souhaitée et réelle.
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
POSP(POSP_tag)
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
POSP tag | POSITION_PROP | Structure | Structure POSP |
Texte structuré
Opérande | Type | Format | Description |
block tag | POSITION_PROP | Structure | Structure POSP |
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.Structure POSITION_PROP
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. |
SP | REAL | Point de consigne. Correspond à la valeur souhaitée pour la position. Cette valeur doit utiliser les mêmes unités de procédé que Position. Valide = tout flottant Par défaut = 0,0 |
Position | REAL | Retour de position. Cette entrée analogique provient du retour de position du dispositif. Valide = tout flottant Par défaut = 0,0 |
OpenedFB | BOOL | Retour ouvert. Cette entrée signale à quel moment le dispositif est complètement ouvert. Lorsqu’elle est définie sur vrai, la sortie de l’ouverture n'est pas autorisée à être activée. La valeur par défaut est fausse. |
ClosedFB | BOOL | Retour fermé. Cette entrée signale à quel moment le dispositif est complètement fermé. Lorsqu’elle est définie sur vrai, la sortie de la fermeture n'est pas autorisée à être activée. La valeur par défaut est fausse. |
PositionEUMax | REAL | Valeur à l’échelle maximale de Position et SP. Valide = tout flottant Par défaut = 100,0 |
PositionEUMin | REAL | Valeur à l’échelle minimale de Position et SP. Valide = tout flottant Par défaut = 0,0 |
CycleTime | REAL | Période de l’impulsion de sortie en secondes. La valeur zéro efface OpenOut et CloseOut. Si cette valeur n'est pas valide, l'instruction présume une valeur de zéro et définit le bit approprié dans Status. Valide = toute valeur flottante positive Par défaut = 0,0 |
OpenRate | REAL | Taux d’ouverture du dispositif en %/seconde. La valeur zéro efface OpenOut. Si cette valeur n'est pas valide, l'instruction présume une valeur de zéro et définit le bit approprié dans Status. Valide = toute valeur flottante positive Par défaut = 0,0 |
CloseRate | REAL | Taux de fermeture du dispositif en %/seconde. La valeur zéro efface CloseOut. Si cette valeur n'est pas valide, l'instruction présume une valeur de zéro et définit le bit approprié dans Status. Valide = toute valeur flottante positive Par défaut = 0,0 |
MaxOnTime | REAL | Temps maximal en secondes pendant lequel une impulsion d’ouverture ou de fermeture peut être activée. Si OpenTime ou CloseTime est calculé pour être supérieur à cette valeur, il est limité à cette valeur. Si cette valeur n'est pas valide, l'instruction présume une valeur de CycleTime et définit le bit approprié dans Status. Valide = 0,0 à CycleTime Par défaut = CycleTime |
MinOnTime | REAL | Temps minimal en secondes pendant lequel une impulsion d’ouverture ou de fermeture peut être activée. Si OpenTime ou CloseTime est calculé pour être inférieur à cette valeur, il est défini sur zéro. Si cette valeur n'est pas valide, l'instruction présume une valeur de zéro et définit le bit approprié dans Status. Valide = 0,0 à MaxOnTime Par défaut = 0,0 |
Deadtime | REAL | Temps d'impulsion supplémentaire en secondes pour vaincre la friction dans le dispositif. Deadtime est ajouté à OpenTime ou CloseTime lorsque le dispositif change de direction ou est arrêté. Si cette valeur n'est pas valide, l'instruction définit le bit approprié dans Status et utilise une valeur de Deadtime = 0,0. Valide = 0,0 à MaxOnTime Par défaut = 0,0 |
Paramètre de sortie | Type de données | Description |
|---|---|---|
EnableOut | BOOL | Indique si l'instruction est activée. Mis à zéro (faux) en cas de débordement de PositionPercent. |
OpenOut | BOOL | Cette sortie reçoit une impulsion pour ouvrir le dispositif. |
CloseOut | BOOL | Cette sortie reçoit une impulsion pour fermer le dispositif. |
PositionPercent | REAL | Le retour positif est exprimé en pourcentage de la plage Position. |
SPPercent | REAL | Le point de consigne est exprimé en pourcentage de la plage Position. |
OpenTime | REAL | Durée d’impulsion en secondes d’OpenOutput pour le cycle actuel. |
CloseTime | REAL | Durée d’impulsion en secondes d’CloseOutput pour le cycle actuel. |
Status | DINT | État du bloc fonctionnel. |
InstructFault (Status.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. |
CycleTimeInv (Status.1) | BOOL | Valeur CycleTime non valide. L'instruction utilise la valeur zéro. |
OpenRateInv (Status.2) | BOOL | Valeur OpenRate non valide. L'instruction utilise la valeur zéro. |
CloseRateInv (Status.3) | BOOL | Valeur CloseRate non valide. L'instruction utilise la valeur zéro. |
MaxOnTimeInv (Status.4) | BOOL | Valeur MaxOnTime non valide. L'instruction utilise la valeur CycleTime. |
MinOnTimeInv (Status.5) | BOOL | Valeur MinOnTime non valide. L'instruction utilise la valeur zéro. |
DeadtimeInv (Status.6) | BOOL | Valeur Deadtime non valide. L'instruction utilise la valeur zéro. |
PositionPctInv (Status.7) | BOOL | La valeur PositionPercent calculée est hors limites. |
SPPercentInv (Status.8) | BOOL | La valeur SPPercent calculée est hors limites. |
PositionSpanInv (Status.9) | BOOL | PositionEUMax = PositionEUMin. |
Description
L’instruction POSP reçoit généralement le point de consigne pour la position souhaitée d’une sortie d’instruction PID.
Mise à l'échelle des valeurs Position et Point de consigne
Les sorties PositionPercent et SPPercent sont mises à jour chaque fois que l’instruction est exécutée. Si l’une de ces valeurs est hors limites (inférieure à 0 % ou supérieure à 100 %), le bit approprié est défini dans Status, mais les valeurs ne sont pas limitées. L’instruction utilise ces formules pour calculer si les valeurs sont comprises dans la plage :

Utilisation du temporisateur de cycle interne par l’instruction POSP
L’instruction utilise CycleTime pour déterminer à quelle fréquence recalculer la durée des impulsions de sortie Ouvrir et Fermer. Un temporisateur interne est maintenu et mis à jour par DeltaT. DeltaT correspond au temps écoulé depuis la dernière exécution de l'instruction. Chaque fois que le temporisateur interne est égal à la valeur programmée de CycleTime ou dépasse celle-ci (le temps de cycle expire) les sorties Ouvrir et Fermer sont recalculées.
Vous pouvez modifier la valeur de CycleTime à tout moment.
Si CycleTime = 0, le temporisateur interne est mis à 0, OpenOut est mis à zéro (faux) et CloseOut est mis à zéro (faux).
Production des impulsions de sortie
Le diagramme suivant montre les trois états principaux de l’instruction POSP.

Calcul des temps d’impulsion pour l’ouverture et la fermeture
OpenOut reçoit une impulsion chaque fois que SP > Retour de position. Lorsque cela se produit, l’instruction définit CloseTime = 0 et la durée pendant laquelle OpenOut doit être activé est calculée de la façon suivante :

Si OpenTimen-1 < CycleTime, ajouter Deadtime à OpenTime.
Si OpenTime > MaxOnTime, limiter à MaxOnTime.
Si OpenTime < MinOnTime, définir OpenTime = 0.
Si l’une des conditions suivantes existe, OpenOut ne reçoit pas d’impulsion et OpenTime = 0.
OpenFB est vrai ou PositionPercent
100
100CycleTime = 0
OpenRate = 0
SPPercent n'est pas valide
CloseOut reçoit une impulsion chaque fois que SP < Retour de position. Lorsque cela se produit, l’instruction définit OpenTime = 0 et la durée pendant laquelle CloseOut doit être activé est calculée de la façon suivante :

Si CloseTimen-1 < CycleTime, ajouter Deadtime à CloseTime.
Si CloseTime > MaxOnTime, limiter à MaxOnTime.
Si CloseTime < MinOnTime, définir CloseTime sur 0.
Si l’une des conditions suivantes existe, CloseOut ne reçoit pas d’impulsion et CloseTime est réinitialisé à 0,0.
ClosedFB est vrai ou PositionPercent
0
0CycleTime = 0
CloseRate = 0
SPPercent n'est pas valide
OpenOut et CloseOut ne recevront pas d’impulsion si SPPercent est égal à PositionPercent. OpenTime et CloseTime seront mis à zéro (faux).
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 | OpenTime et CloseTime sont réinitialisés à 0,0. |
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. |
Exemples
Exemple 1
Dans cet exemple, l'instruction POSP ouvre ou ferme une vanne motorisée en fonction de la sortie CVEU de l'instruction PIDE. La position réelle de la vanne est câblée sur l’entrée Position et les interrupteurs de fin de course facultatifs, qui indiquent si la vanne est complètement ouverte ou fermée, sont câblés sur les entrées OpenedFB et ClosedFB. Les sorties OpenOut et CloseOut sont câblées sur les contacts d’ouverture et de fermeture sur la vanne motorisée.
Bloc fonctionnel

Texte structuré
FlowController.PV := WaterFlowRate;
PIDE(FlowController);
FlowValve.SP := FlowController.CVEU;
FlowValve.Position := FlowValvePosition;
FlowValve.OpenedFB := FlowValveOpened;
FlowValve.ClosedFB := FlowValveClosed;
POSP(FlowValve);
OpenFlowValveContact := FlowValve.OpenOut;
CloseFlowValveContact := FlowValve.CloseOut;
Fournir une réponse