Dispositif à 2 états discret (D2SD)
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 Dispositif à 2 états discret (Discrete 2-State Device, D2SD) contrôle un dispositif discret ne pouvant disposer que de deux états (par exemple actif/inactif ou ouvert/fermé).
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
D2SD(D2SD_tag)
Opérandes
Il existe des règles de conversion de données pour les types de données mixtes dans une instruction. Reportez-vous à la section Conversions de données.
Texte structuré
Opérande | Type | Format | Description |
D2SD tag | DISCRETE_2STATE | Structure | Structure D2SD |
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.Bloc fonctionnel
Opérande | Type | Format | Description |
D2SD tag | DISCRETE_2STATE | Structure | Structure D2SD |
Structure de DISCRETE_2STATE
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. |
ProgCommand | BOOL | Utilisé pour déterminer la valeur de CommandStatus lorsque le dispositif est en mode de contrôle Programme. Si cette entrée est définie sur vrai, le dispositif est défini sur l’état 1 ; si elle est définie sur faux, il est défini sur l’état 0. La valeur par défaut est fausse. |
Oper0Req | BOOL | Demande Opérateur, état 0. Définir par l’interface opérateur afin de placer le dispositif dans l’état 0 lorsque celui-ci est en mode de contrôle Opérateur. La valeur par défaut est fausse. |
Oper1Req | BOOL | Demande Opérateur, état 1. Définir par l’interface opérateur afin de placer le dispositif dans l’état 1 lorsque celui-ci est en mode de contrôle Opérateur. La valeur par défaut est fausse. |
State0Perm | BOOL | État 0 autorisé. Sauf en mode Portable ou Outrepassement, cette entrée doit être définie pour que le dispositif passe dans l’état 0. Cette entrée n’a aucun effet si le dispositif est déjà dans l’état 0. La valeur par défaut est définie sur vrai. |
State1Perm | BOOL | État 1 autorisé. Sauf en mode Portable ou Outrepassement, cette entrée doit être définie pour que le dispositif passe dans l’état 1. Cette entrée n’a aucun effet si le dispositif est déjà dans l’état 1. La valeur par défaut est définie sur vrai. |
FB0 | BOOL | La première entrée de retour disponible pour l’instruction D2SD. La valeur par défaut est fausse. |
FB1 | BOOL | La deuxième entrée de retour disponible pour l’instruction D2SD. La valeur par défaut est fausse. |
HandFB | BOOL | Entrée de retour portable. Cette entrée d’une station auto/arrêt/portable de terrain et montre l'état demandé du dispositif de terrain. Si elle est définie sur vrai, le dispositif de terrain doit passer à l’état 1. Si elle est définie sur faux, le dispositif de terrain doit passer à l’état 0. La valeur par défaut est fausse. |
FaultTime | REAL | Valeur du temps de défaut. Saisissez la durée (en secondes) au bout de laquelle le dispositif d'atteindre doit avoir atteint un nouvel état commandé. Définir FaultTime sur 0 pour désactiver le temporisateur de défaut. 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 0,0Par défaut = 0,0 |
FaultAlarmLatch | BOOL | Entrée de verrouillage d’alarme de défaut. Si cette entrée et FaultAlarm sont définies sur vrai, FaultAlarm est verrouillé. Pour déverrouiller FaultAlarm, définissez FaultAlmUnlatch sur vrai ou FaultAlarmLatch sur faux. La valeur par défaut est fausse. |
FaultAlmUnLatch | BOOL | Entrée de déverrouillage d’alarme de défaut. Définissez FaultAlmUnLatch lorsque FaultAlarmLatch est défini pour déverrouiller FaultAlarm. L’instruction met à zéro cette entrée sur faux. La valeur par défaut est fausse. |
OverrideOnInit | BOOL | Demande d’outrepassement lors de l’initialisation. Si ce bit est défini sur vrai, le dispositif à 2 états est placé en mode de contrôle Opérateur, Outrepassement est défini sur vrai et Portable sur faux pendant la première scrutation de l’instruction. Si ProgHandReq est défini sur vrai, Outrepassement est défini sur faux et Portable sur vrai. La valeur par défaut est fausse. |
OverrideOnFault | BOOL | Demande d’outrepassement lors d’un défaut. Définissez OverrideOnFault sur vrai si le dispositif doit passer en mode Outrepassement et passer dans l’état OverrideState en cas d’alarme de défaut. Une fois l’alarme de défaut supprimée, le dispositif à 2 états est placé en mode de contrôle Opérateur. La valeur par défaut est fausse. |
OutReverse | BOOL | Inverse l'état de sortie par défaut. L’état par défaut de Out est défini sur faux lorsqu’il lui est demandé de passer à l’état 0, et sur vrai s’il lui est demandé de passer à l’état 1. Si OutReverse est défini sur vrai, Out est défini sur vrai lorsqu’il lui est demandé de passer à l’état 0, et sur faux s’il lui est demandé de passer à l’état 1. La valeur par défaut est fausse. |
OverrideState | BOOL | Entrée Outrepassement de l'état. Configurez cette valeur pour spécifier l'état du dispositif en mode Outrepassement. Si cette entrée est définie sur vrai, le dispositif doit passer à l’état 1 ; si elle est définie sur faux, il doit passer à l’état 0. La valeur par défaut est fausse. |
FB0State0 | BOOL | Entrée Retour 0 État 0. Configurez l’état de FB0 lorsque le dispositif est dans l’état 0. La valeur par défaut est fausse. |
FB0State1 | BOOL | Entrée Retour 0 État 1. Configurez l’état de FB0 lorsque le dispositif est dans l’état 1. La valeur par défaut est fausse. |
FB1State0 | BOOL | Entrée Retour 1 État 0. Configurez l’état de FB1 lorsque le dispositif est dans l’état 0. La valeur par défaut est fausse. |
FB1State1 | BOOL | Entrée Retour 1 État 1. Configurez l’état de FB1 lorsque le dispositif est dans l’état 1. La valeur par défaut est fausse. |
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. Ignoré si ProgHandReq est vrai. La valeur par défaut est fausse. |
ProgHandReq | BOOL | Demande de portable du programme. Défini sur vrai par le programme utilisateur pour demander au dispositif de passer en mode Portable. 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. |
Out | BOOL | La sortie de l’instruction à 2 états. |
Device0State | BOOL | Sortie état pour le dispositif 0. Défini sur vrai si le dispositif est défini sur l’état 0 et que les retours indiquent que le dispositif est effectivement dans l’état 0. |
Device1State | BOOL | Sortie état pour le dispositif 1. Défini sur vrai si le dispositif est défini sur l’état 1 et que les retours indiquent que le dispositif est effectivement dans l’état 1. |
CommandStatus | BOOL | Sortie de l’état de la commande. Défini sur vrai si le dispositif est défini sur l’état 1, et défini sur faux lorsqu’il est défini sur l’état 0. |
FaultAlarm | BOOL | Sortie Alarme de défaut. Défini sur vrai si le dispositif est défini sur un nouvel état et que FaultTime a expiré sans que les retours n’indiquent que le nouvel état a été effectivement atteint. Défini également sur vrai si, après avoir atteint l’état demandé, le retour indique subitement que le dispositif ne se trouve plus dans l’état demandé. |
ModeAlarm | BOOL | Sortie Alarme de mode. Défini sur vrai si le dispositif est en mode de contrôle Opérateur et que la commande par programme change pour un état différent de l’état actuel demandé par l’opérateur. Cette alarme vise à rappeler que le dispositif a été laissé en mode de contrôle Opérateur. |
ProgOper | BOOL | Indicateur de contrôle programme/opérateur. Vrai dans le mode de contrôle Programme. Faux dans le mode de contrôle Opérateur. |
Override | BOOL | Mode Outrepassement. Défini sur vrai si le dispositif se trouve en mode Outrepassement. |
Hand | BOOL | Mode Portable. Défini sur vrai si le dispositif se trouve en mode Portable. |
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. |
FaultTimeInv (Status.1) | BOOL | Valeur FaultTime non valide. L’instruction définit FaultTime = 0. |
OperReqInv (Status.2) | BOOL | Les deux bits de demande d’état de l’opérateur sont définis sur vrai. |
Description
L’instruction D2SD contrôle un dispositif discret ne pouvant disposer que de deux états (par exemple actif/inactif ou ouvert/fermé). Les dispositifs discrets classiques de ce type incluent les moteurs, les pompes et les électrovannes.
Surveillance de l’instruction D2SD
Une face avant opérateur est disponible pour l’instruction D2SD.
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 | Définir ProgOper sur le mode Opérateur. Définir CommandStatus sur faux. |
Première scrutation de l'instruction | Définir EnableOut sur vrai. Les entrées ModeAlarm et de demande de l’opérateur sont définis sur faux. Si ProgValueReset est vrai, toutes les entrées de demandes opérateur sont mis à zéro (faux). Si OverrideOnInit est défini sur vrai, ProgOper est défini sur faux (contrôle Opérateur). Si ProgHandReq est mis à zéro et que OverrideOnInit défini, effacez Portable et définissez Outrepasser (mode Outrepassement). Si ProgHandReq est défini, définissez Portable et effacez Outrepasser (mode Portable). |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Dans Texte Structuré, EnableIn est toujours vrai lors d'une scrutation normale. Par conséquent, si l'instruction est dans le chemin d'accès de commande activé par la logique, elle sera exécutée.
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
L’instruction SD est généralement utilisée pour contrôler des dispositifs de type marche/arrêt ou ouvert/fermé, par exemple des pompes ou des électrovannes. Dans cet exemple, l’instruction D2SD commande une électrovanne qui ajoute du sirop de glucose à un réservoir de charge. Tant que l'instruction D2SD est en mode de contrôle Programme, la vanne s’ouvre lorsque l’entrée AddSyrup est définie sur vrai. L’opérateur peut par ailleurs prendre le contrôle de la vanne pour l'ouvrir ou la fermer si nécessaire. Dans cet exemple, l'électrovanne est dotée d’interrupteurs de fin de course qui indiquent quand la vanne est entièrement ouverte ou entièrement fermée. Ces interrupteurs sont câblés aux entrées de retour FB0 et FB1. L’instruction D2SD peut ainsi déclencher une alarme FaultAlarm si l’électrovanne n’atteint pas l’état commandé dans le temps FaultTime configuré.
Bloc fonctionnel

Texte structuré
SyrupController.ProgCommand := AddSyrup;
SyrupController.FB0 := SyrupValveClosedLimitSwitch;
SyrupController.FB1 := SyrupValveOpenedLimitSwitch;
D2SD(SyrupController);
SyrupValve := SyrupController.Out;
Passer entre le contrôle Programme et le contrôle Opérateur
Le diagramme suivant montre comment l'instruction D2SD réalise la transition entre le contrôle Programme et le contrôle Opérateur.

(1) L’instruction reste en mode de contrôle Opérateur lorsque ProgOperReq est défini sur vrai.
État commandé en mode de contrôle Programme
La diagramme suivant présente le fonctionnement de l’instruction D2SD en mode de contrôle Programme.

État commandé en mode de contrôle Opérateur
Le diagramme suivant montre le fonctionnement de l'instruction D2SD en contrôle Opérateur.

Si les deux entrées Oper0Req et Oper1Req sont définies sur vrai :
- L’instruction définit le bit approprié dans Status sur vrai
- Si Outrepassement et Portable sont définis sur faux, l’instruction conserve l’état précédent.
Après chaque exécution de l'instruction, celle-ci :
- Définit toutes les entrées de demande de l’opérateur sur faux
- Si ProgValueReset est vrai, toutes les entrées de demandes opérateur sont définies sur faux.
Mode Portable ou Mode Outrepassement
Le tableau suivant décrit la manière dont l'instruction D2SD choisit de fonctionner en mode Portable ou en mode Outrepassement.
ProgHandReq | ProgOverrideReq | FaultAlarm et OverrideOnFault | Description |
|---|---|---|---|
vrai | ou | ou | Mode Portable Portable est défini sur vrai Outrepassement est défini sur faux |
faux | vrai | ou | Mode Outrepassement Portable est défini sur faux Outrepassement est défini sur vrai |
faux | ou | vrai | Mode Outrepassement Portable est défini sur faux Outrepassement est défini sur vrai |
Si l’instruction est en mode Outrepassement, CommandStatus = OverrideState.
Si l’instruction est en mode Portable, CommandStatus = HandFB.
État de sortie
L'état de sortie D2SD est basé sur l'état de la commande.
CommandStatus | État de sortie |
|---|---|
faux | Si OutReverse est faux, Out est défini sur faux. Si OutReverse est vrai, Out est défini sur vrai. |
vrai | Si OutReverse est faux, Out est défini sur vrai Si OutReverse est vrai, Out est défini sur faux |
faux et FB0 = FB0State0 et FB1 = FB1State0 | Le temporisateur de défaut est arrêté et remis à zéro Device0State est défini sur vrai |
vrai et FB0 = FB0State1 et FB1 = FB1State1 | Le temporisateur de défaut est arrêté et remis à zéro Device1State est défini sur vrai |
Conditions d’alarme de défaut
L’instruction D2SD vérifie la présence de conditions d’alarme de défaut.
Condition d’alarme de défaut résultant de | Règles |
|---|---|
Le changement de l’état du dispositif a été commandé, mais le retour n’a pas indiqué que l’état désiré a été réellement atteint à l’issue du délai FaultTime | Démarrer le temporisateur de défauts lorsque CommandStatus n CommandStatusn-1 Définir FaultAlarm lorsque le délai du temporisateur de défaut s’est écoulé et que FaultTime > 0,0 |
Le dispositif a inopinément changé d’état (selon le retour) sans avoir reçu de commande pour cela | Définir FaultAlarm sur vrai lorsque le temporisateur de défaut n’est pas activé et que l’une des conditions suivantes est satisfaite : CommandStatus est défini sur faux et Device0State sur faux CommandStatus est défini sur vrai et Device1State sur faux |
FaultAlarm est défini sur faux si l’une des conditions suivantes est satisfaite :
- CommandStatus est défini sur faux et Device0State sur vrai
- CommandStatus est défini sur vrai et Device1State sur vrai
- FaultTime
0
FaultAlarm ne peut pas être défini sur faux si FaultAlarmLatch est défini sur vrai, sauf si FaultAlmUnlatch est défini sur vrai et qu’aucun défaut n’est présent.
Conditions d’alarme de mode
L’alarme de mode rappelle à l’opérateur que le dispositif a été laissé en mode de contrôle Opérateur. L’alarme de mode ne se déclenche que si, en mode contrôle Opérateur, le programme tente de modifier l'état du dispositif et de quitter l’état commandé par l'opérateur. L’alarme ne se déclenche pas si un opérateur place un dispositif en mode contrôle Opérateur et change l'état. L’instruction D2SD vérifie la présence de conditions d’alarme de mode selon ces règles.
ModeAlarm | Si |
|---|---|
Vrai | ProgCommand n ProgCommandn-1 etProgCommand n CommandStatus |
Faux | ProgCommand = CommandStatus ou le dispositif est en mode Outrepassement, Manuel ou Programme |
Fournir une réponse
0,0
CommandStatus