Sélection améliorée (ESEL)
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 Sélection améliorée (Enhanced Select, ESEL) vous permet de choisir l’une des six entrées. Les options de sélection comprennent :
- La sélection manuelle (par opérateur ou par programme)
- la sélection haute
- la sélection basse
- la sélection médiane
- la sélection moyenne
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
ESEL(ESEL_tag);
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
Balise ESEL | SELECT_ENHANCED | Structure | Structure ESEL |
Structure SELECT_ENHANCED
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. |
In1 | REAL | Première entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In2 | REAL | Deuxième entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In3 | REAL | La troisième entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In4 | REAL | Quatrième entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In5 | REAL | Cinquième entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In6 | REAL | Sixième entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
In1Fault | BOOL | Indicateur de mauvaise santé pour In1. Si In1 est reconnu par une entrée analogique, alors In1Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
In2Fault | BOOL | Indicateur de mauvaise santé pour In2. Si In2 est lu par une entrée analogique, alors In2Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
In3Fault | BOOL | Indicateur de mauvaise santé pour In3. Si In3 est lu par une entrée analogique, alors In3Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
In4Fault | BOOL | Indicateur de mauvaise santé pour In4. Si In4 est lu par une entrée analogique, alors In4Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
In5Fault | BOOL | Indicateur de mauvaise santé pour In5. Si In5 est lu par une entrée analogique, alors In5Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
In6Fault | BOOL | Indicateur de mauvaise santé pour In6. Si In6 est lu par une entrée analogique, alors In6Fault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Si toutes les entrées InnFault sont vraies, l’instruction configure le bit adéquat dans Status, l’algorithme de contrôle n’est pas exécuté, et Out n’est pas mis à jour. Valeur par défaut = faux |
InsUsed | DINT | Nombre d’entrées utilisées. Ceci définit le nombre d’entrées que l’instruction utilise. L’instruction ne prend que In1 en compte par In InsUsed dans les modes sélection haute, sélection basse, sélection médiane et sélection moyenne. Si la valeur n’est pas valide, l’instruction définit le bit approprié dans Status. L’instruction ne met pas Out à jour si InsUsed n’est pas valide, si l’instruction n’est pas en mode de sélection manuelle et si Override est mis à zéro.Valide = de 1 à 6 Par défaut = 1 |
Selector Mode | DINT | Entrée de sélecteur de mode. Cette valeur détermine l’action de l’instruction. 0 = sélection manuelle 1 = sélection haute 2 = sélection basse 3 = sélection médiane 4 = sélection moyenne Si cette valeur n’est pas valide, l’instruction configure le bit adéquat dans Status et ne met pas Out à jour. Valide = de 0 à 4 Par défaut = 0 |
ProgSelector | DINT | Entrée de sélecteur de programme. Lorsque le mode sélecteur est sélectionné manuellement et que l’instruction est dans le contrôle Programme, ProgSelector détermine quelle entrée (In1-In6) se déplace vers Out. Si ProgSelector = 0, l’instruction ne met pas Out à jour. Si ProgSelector n’est pas valide, l’instruction configure le bit adéquat dans Status. Si ce n’est pas valide et que l’instruction est dans le contrôle Programme, et que le mode sélecteur est sélectionné manuellement ou que Override est défini, l’instruction ne se met pas à jour. Out. Valide = de 0 à 6 Par défaut = 0 |
OperSelector | DINT | Entrée du sélecteur de l’opérateur. Lorsque le mode sélecteur est sélectionné manuellement et que l’instruction est dans le contrôle Opérateur, OperSelector détermine quelle entrée (In1-In6) se déplace vers Out. Si OperSelector = 0, l’instruction ne met pas Out à jour. Si OperSelector n’est pas valide, l’instruction configure le bit adéquat dans Status. Si ce n’est pas valide et que l’instruction est en mode contrôle Opérateur, et que le mode sélecteur est sélection manuelle ou qu’Outrepassement est défini, l’instruction ne met pas à jour Out. Valide = de 0 à 6 Par défaut = 0 |
ProgProgReq | BOOL | Demande de contrôle Programme du programme. Défini sur vrai par le programme utilisateur pour demander le contrôle Programme. Ignoré si ProgOperReq est vrai. Le maintien de cet élément sur vrai et de ProgOperReq sur faux verrouille l'instruction dans le contrôle Programme. La valeur par défaut est fausse. |
ProgOperReq | BOOL | Demande de contrôle Opérateur du programme. Défini sur vrai par le programme utilisateur pour demander le contrôle Opérateur. Le maintien de cet élément sur vrai verrouille l'instruction dans le contrôle Opérateur. La valeur par défaut est fausse. |
ProgOverrideReq | BOOL | Demande d’Outrepassement du programme. Défini sur vrai par le programme utilisateur pour demander au dispositif de passer en mode Outrepassement. En mode Outrepassement, l’instruction agira comme une sélection manuelle. La valeur par défaut est fausse. |
OperProgReq | BOOL | Demande de contrôle Programme de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Programme. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OperOperReq | BOOL | Demande de contrôle Opérateur de l’opérateur. Définissez cette valeur sur vrai au moyen de l’interface opérateur pour demander le contrôle Opérateur. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
ProgValueReset | BOOL | Réinitialiser les valeurs de contrôle du programme. Lorsque ce paramètre est défini sur vrai, toutes les entrées de demandes du programme sont définies sur faux à chaque exécution de l'instruction. La valeur par défaut est fausse. |
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 d'Out. |
Out | REAL | Sortie calculée de l’algorithme. |
SelectedIn | DINT | Nombre d’entrées sélectionnées. Cette instruction utilise cette valeur pour afficher le nombre d’entrées placées dans les sorties. Si le mode sélecteur est sélectionné en moyenne, l’instruction définira SelectedIn = 0. |
ProgOper | BOOL | Indicateur de contrôle programme/opérateur. Défini sur vrai en contrôle Programme. Mis à zéro (faux) en mode Opérateur |
Asservissement | BOOL | Mode Outrepassement. Défini sur vrai lorsque l’instruction est en mode Outrepassement. |
État | 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. |
InsFaulted (Status.1) | BOOL | Les entrées InnFault pour toutes les entrées Inn utilisées sont vraies. |
InsUsedInv (Status.2) | BOOL | Valeur InsUsed non valide. |
SelectorModeInv (Status.3) | BOOL | Valeur SelectorMode non valide. |
ProgSelectorInv (Status.4) | BOOL | Valeur ProgSelector non valide. |
OperSelectorInv (Status.5) | BOOL | Valeur OperSelector non valide |
Texte structuré
Opérande | Type | Format | Description |
Balise ESEL | SELECT_ENHANCED | structure | Structure ESEL |
Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Description
L’instruction ESEL fonctionne comme suit :
Condition | Action |
SelectorMode = 0 (sélection manuelle) ou Override est vrai, ProgOper est faux et OperSelector n’est pas égal à 0 | Out = In[OperSelector] SelectedIn = OperSelector |
SelectorMode = 0 (sélection manuelle) ou Override est vrai, ProgOper est vrai et ProgSelector n’est pas égal à 0 | Out = In[ProgSelector] SelectedIn = ProgSelector |
SelectorMode = 1 (sélection haute) et Override est faux | Out = maximum de In[InsUsed] SelectedIn = index à la valeur d’entrée maximum |
SelectorMode = 2 (sélection basse) et Override est faux | Out = minimum de In[InsUsed] SelectedIn = index à la valeur d’entrée minimum |
SelectorMode = 3 (sélection médiane) et Override est faux | Out = médiane de In[InsUsed] SelectedIn = index à la valeur d’entrée médiane |
SelectorMode = 4 (sélection moyenne) et Override est faux | Out = moyenne de In[InsUsed] SelectedIn = 0 |
Pour le SelectorMode 1 jusqu’à 4, s’il y a indication de mauvaise santé pour une quelconque entrée celle-ci sera écartée de la sélection. Par exemple, si le SelectorMode = 1 (sélection haute) et si In6 a la valeur la plus élevée mais est en mauvaise santé, alors c’est l’entrée en bonne santé qui sera placée dans la sortie.
Pour le mode sélection haute ou basse, s’il y a deux entrées égales et qu’elles sont en haut ou basse, l’instruction écartera la première entrée trouvée. Pour le mode sélection médiane, la valeur médiane représente toujours une valeur sélectionnée des entrées disponibles. S’il y a plus d’une valeur médiane, l’instruction écartera la première entrée trouvée.
Passer entre le contrôle Programme et le contrôle Opérateur
Le diagramme suivant montre comment l’instruction ESEL réalise la transition entre le contrôle Programme et le contrôle Opérateur.

(1) Vous pouvez verrouiller l’instruction dans le mode contrôle Opérateur en laissant ProgOperReq sur vrai.
(2) Vous pouvez verrouiller l’instruction dans le mode contrôle Programme en laissant ProgProgReq sur vrai et ProgOperReq sur faux.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Un défaut mineur se produira si la fonction est activée et qu’un débordement est détecté (Type de défaut : 4, Code de défaut : 4).
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 | L’instruction est définie sur contrôle Opérateur. |
Première scrutation de l'instruction | N/A |
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. |
Exemple
Cette instruction ESEL sélectionne In1, In2, ou In3 selon le SelectorMode. Dans cet exemple, SelectorMode = 1 c’est à dire sélection haute. L’instruction détermine quelle valeur d’entrée est la plus élevée et définit Out = greatest In.
Bloc fonctionnel

Texte structuré
ESEL_01.In1 := analog_input1;
ESEL_01.In2 := analog_input2;
ESEL_01.In3 := analog_input3;
ESEL_01.SelectorMode := 1;
ESEL(ESEL_01);
selected_value := ESEL_01.Out;
Fournir une réponse