Implementing 3-Switch XOR Ladder Logic with Internal Bit — figure 1

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec bit interne

Implémentez un circuit d’éclairage XOR à 3 interrupteurs SPST dans LogixPro ou RSLogix 500 à l’aide d’un bit de relais interne. Comprend les tables de vérité...

L’exercice classique — trois interrupteurs SPST commandent un voyant de sorte que chaque interrupteur actionné individuellement inverse la sortie — se réduit à un OU exclusif à trois entrées (parité impaire). Le XOR à deux entrées est un motif connu de branches XIC/XIO croisées. Étendre ce motif avec une troisième branche en parallèle ne se généralise pas : cela implémente une somme de XOR par paires, qui allume le voyant lorsque les trois interrupteurs sont fermés alors que la spécification exige uniquement une parité impaire. La correction acceptée consiste à utiliser un bit de relais interne qui mémorise A⊕B, puis une seconde étape qui calcule (A⊕B)⊕C.

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec un bit interne — figure 1

La parité impaire sur trois entrées maintenues correspond à un XOR, et non à une structure OU inclusive à trois branches.

Table de vérité (1 = fermé)

S1 S2 S3 Voyant Parité
0 0 0 0 pair
0 0 1 1 impair
0 1 0 1 impair
0 1 1 0 pair
1 0 0 1 impair
1 0 1 0 pair
1 1 0 0 pair
1 1 1 1 impair

Référence à deux entrées

|--[S1 XIC]-+-[S2 XIO]-+
|           |          +--( Light )--|
|--[S1 XIO]-[S2 XIC]---+             |

Mapper I:1/0, I:1/1 → O:2/0 dans les simulateurs LogixPro/RSLogix 500 (ou utiliser des tags BOOL dans Logix Designer). Vérifier les quatre lignes avant d’ajouter S3.

Pourquoi la troisième branche en parallèle échoue

Y = (S1⊕S2) ∨ (S1⊕S3) ∨ (S2⊕S3) devient vrai pour la ligne où les trois interrupteurs sont fermés, car chaque paire est différente. Les étudiants décrivent le symptôme comme le fait que le voyant « reste allumé » dès que deux interrupteurs se ferment. Il s’agit d’un comportement OU inclusif par paires, et non d’un XOR.

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec un bit interne — figure 2

Mettre en cascade les XOR via B3:0/0 (ou un tag BOOL) — ne pas mettre en parallèle des étapes OU par paires.

Implémentation avec un bit interne

Rung 2 — S1 XOR S2 -> B3:0/0
|--[I:1/0 XIC]-+-[I:1/1 XIO]-+
|              |             +--( B3:0/0 )--|
|--[I:1/0 XIO]-[I:1/1 XIC]---+              |

Rung 3 — B3:0/0 XOR S3 -> O:2/0
|--[B3:0/0 XIC]-+-[I:1/2 XIO]-+
|               |             +--( O:2/0 )--|
|--[B3:0/0 XIO]-[I:1/2 XIC]---+             |

Comme XOR est associatif, l’ordre des interrupteurs n’a pas d’importance. Dans Logix Designer, les mêmes équations deviennent XOR_Mid := S1 XOR S2; Light := XOR_Mid XOR S3; pour le texte structuré, ou des motifs de contacts identiques sur des tags BOOL. Le bit intermédiaire est écrit sur un rung et lu sur le suivant au cours du même cycle, ce qui est intentionnel et stable pour ce motif.

Procédure dans LogixPro / RSLogix 500

  1. Confirmer les modules d’entrée et de sortie TOR dans le simulateur (mappage par défaut I:1 / O:2)
  2. Vérifier que le fichier binaire B3 existe avec des bits disponibles, ou créer un tag BOOL nommé XOR_Mid dans Logix Designer
  3. Créer le rung 2 qui pilote B3:0/0 à partir de S1 et S2 avec des contacts XIC/XIO croisés
  4. Construisez le rung 3 en pilotant O:2/0 depuis B3:0/0 et S3 selon le même schéma croisé
  5. Téléchargez le programme, placez le processeur en mode RUN et effacez tous les forçages avant de parcourir la table de vérité
  6. Forcez momentanément chaque voyant d’entrée et le voyant de sortie une fois pour vérifier le câblage, puis effacez les forçages

Plan d’adressage et alternatives

Plateforme Intermédiaire Notes
RSLogix 500 / SLC B3:0/0 Bit d’un fichier binaire
Logix Designer XOR_Mid BOOL Portée du programme ou du contrôleur
LogixPro B3:0/0 Compatible avec les travaux pratiques RSLogix 500

Les diagnostics facultatifs conservent les deux intermédiaires : B3:0/0 = S1 XOR S2 et B3:0/1 = intermédiaire XOR S3, puis pilotent le voyant depuis B3:0/1 afin que les moniteurs en ligne puissent interrompre la chaîne à l’une ou l’autre étape. Les instructions XOR au niveau des mots peuvent regrouper de nombreuses entrées pour vérifier la parité, mais elles masquent le schéma pédagogique à trois sélecteurs. Évitez les développements selon De Morgan qui tentent d’exprimer « pas deux entrées vraies » sous forme d’une forêt de contacts : la cascade de bits internes reste la forme la plus facile à maintenir, aussi bien sur les bancs de formation que dans les sélecteurs de mode en production.

Parcourez les huit lignes de parité avant la validation

  1. Parcourez les huit lignes de la table de vérité avec les forçages désactivés
  2. Vérifiez que trois sélecteurs fermés allument le voyant (parité impaire)
  3. Actionnez chaque sélecteur seul et vérifiez que la sortie s’inverse
  4. Si le voyant reste allumé avec deux entrées, vous avez toujours une logique OU par paires
  5. Facultatif : déclenchez une alarme lorsque deux sélecteurs de mode maintenus indiquent TRUE après l’antirebond sur de vraies machines
  6. Documentez l’identité booléenne (A XOR B) XOR C dans les commentaires du rung pour le prochain intervenant

Nommez les intermédiaires d’après leur fonction (XOR_Mid, ModeParity) plutôt que d’utiliser des bits anonymes, afin que la prochaine modification reste lisible. Appliquez la même discipline à l’ensemble des parcs standardisés autour des systèmes PLC et PAC.

À propos de l’auteur

Mark Townsend | Ingénieur senior en automatisation – Systèmes Allen-Bradley

Mark Townsend est ingénieur senior en automatisation, avec plus de 18 ans d’expérience sur les plateformes Allen-Bradley, notamment ControlLogix, CompactLogix et les anciens systèmes SLC-500. Son travail quotidien consiste à développer la logique RSLogix / Studio 5000 et à mettre en service les IHM FactoryTalk View sur des parcs vieillissants et hétérogènes.

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec bit interne

Implémentez un circuit d’éclairage XOR à 3 interrupteurs SPST dans LogixPro ou RSLogix 500 à l’aide d’un bit de relais interne. Comprend les tables de vérité, les équations booléennes et la vérific...

L’exercice classique — trois interrupteurs SPST commandent un voyant de sorte que chaque interrupteur actionné individuellement inverse la sortie — se réduit à un OU exclusif à trois entrées (parité impaire). Le XOR à deux entrées est un motif connu de branches XIC/XIO croisées. Étendre ce motif avec une troisième branche en parallèle ne se généralise pas : cela implémente une somme de XOR par paires, qui allume le voyant lorsque les trois interrupteurs sont fermés alors que la spécification exige uniquement une parité impaire. La correction acceptée consiste à utiliser un bit de relais interne qui mémorise A⊕B, puis une seconde étape qui calcule (A⊕B)⊕C.

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec un bit interne — figure 1

La parité impaire sur trois entrées maintenues correspond à un XOR, et non à une structure OU inclusive à trois branches.

Table de vérité (1 = fermé)

S1 S2 S3 Voyant Parité
0 0 0 0 pair
0 0 1 1 impair
0 1 0 1 impair
0 1 1 0 pair
1 0 0 1 impair
1 0 1 0 pair
1 1 0 0 pair
1 1 1 1 impair

Référence à deux entrées

|--[S1 XIC]-+-[S2 XIO]-+
|           |          +--( Light )--|
|--[S1 XIO]-[S2 XIC]---+             |

Mapper I:1/0, I:1/1 → O:2/0 dans les simulateurs LogixPro/RSLogix 500 (ou utiliser des tags BOOL dans Logix Designer). Vérifier les quatre lignes avant d’ajouter S3.

Pourquoi la troisième branche en parallèle échoue

Y = (S1⊕S2) ∨ (S1⊕S3) ∨ (S2⊕S3) devient vrai pour la ligne où les trois interrupteurs sont fermés, car chaque paire est différente. Les étudiants décrivent le symptôme comme le fait que le voyant « reste allumé » dès que deux interrupteurs se ferment. Il s’agit d’un comportement OU inclusif par paires, et non d’un XOR.

Implémentation d’une logique en échelle XOR à 3 interrupteurs avec un bit interne — figure 2

Mettre en cascade les XOR via B3:0/0 (ou un tag BOOL) — ne pas mettre en parallèle des étapes OU par paires.

Implémentation avec un bit interne

Rung 2 — S1 XOR S2 -> B3:0/0
|--[I:1/0 XIC]-+-[I:1/1 XIO]-+
|              |             +--( B3:0/0 )--|
|--[I:1/0 XIO]-[I:1/1 XIC]---+              |

Rung 3 — B3:0/0 XOR S3 -> O:2/0
|--[B3:0/0 XIC]-+-[I:1/2 XIO]-+
|               |             +--( O:2/0 )--|
|--[B3:0/0 XIO]-[I:1/2 XIC]---+             |

Comme XOR est associatif, l’ordre des interrupteurs n’a pas d’importance. Dans Logix Designer, les mêmes équations deviennent XOR_Mid := S1 XOR S2; Light := XOR_Mid XOR S3; pour le texte structuré, ou des motifs de contacts identiques sur des tags BOOL. Le bit intermédiaire est écrit sur un rung et lu sur le suivant au cours du même cycle, ce qui est intentionnel et stable pour ce motif.

Procédure dans LogixPro / RSLogix 500

  1. Confirmer les modules d’entrée et de sortie TOR dans le simulateur (mappage par défaut I:1 / O:2)
  2. Vérifier que le fichier binaire B3 existe avec des bits disponibles, ou créer un tag BOOL nommé XOR_Mid dans Logix Designer
  3. Créer le rung 2 qui pilote B3:0/0 à partir de S1 et S2 avec des contacts XIC/XIO croisés
  4. Construisez le rung 3 en pilotant O:2/0 depuis B3:0/0 et S3 selon le même schéma croisé
  5. Téléchargez le programme, placez le processeur en mode RUN et effacez tous les forçages avant de parcourir la table de vérité
  6. Forcez momentanément chaque voyant d’entrée et le voyant de sortie une fois pour vérifier le câblage, puis effacez les forçages

Plan d’adressage et alternatives

Plateforme Intermédiaire Notes
RSLogix 500 / SLC B3:0/0 Bit d’un fichier binaire
Logix Designer XOR_Mid BOOL Portée du programme ou du contrôleur
LogixPro B3:0/0 Compatible avec les travaux pratiques RSLogix 500

Les diagnostics facultatifs conservent les deux intermédiaires : B3:0/0 = S1 XOR S2 et B3:0/1 = intermédiaire XOR S3, puis pilotent le voyant depuis B3:0/1 afin que les moniteurs en ligne puissent interrompre la chaîne à l’une ou l’autre étape. Les instructions XOR au niveau des mots peuvent regrouper de nombreuses entrées pour vérifier la parité, mais elles masquent le schéma pédagogique à trois sélecteurs. Évitez les développements selon De Morgan qui tentent d’exprimer « pas deux entrées vraies » sous forme d’une forêt de contacts : la cascade de bits internes reste la forme la plus facile à maintenir, aussi bien sur les bancs de formation que dans les sélecteurs de mode en production.

Parcourez les huit lignes de parité avant la validation

  1. Parcourez les huit lignes de la table de vérité avec les forçages désactivés
  2. Vérifiez que trois sélecteurs fermés allument le voyant (parité impaire)
  3. Actionnez chaque sélecteur seul et vérifiez que la sortie s’inverse
  4. Si le voyant reste allumé avec deux entrées, vous avez toujours une logique OU par paires
  5. Facultatif : déclenchez une alarme lorsque deux sélecteurs de mode maintenus indiquent TRUE après l’antirebond sur de vraies machines
  6. Documentez l’identité booléenne (A XOR B) XOR C dans les commentaires du rung pour le prochain intervenant

Nommez les intermédiaires d’après leur fonction (XOR_Mid, ModeParity) plutôt que d’utiliser des bits anonymes, afin que la prochaine modification reste lisible. Appliquez la même discipline à l’ensemble des parcs standardisés autour des systèmes PLC et PAC.

À propos de l’auteur

Mark Townsend | Ingénieur senior en automatisation – Systèmes Allen-Bradley

Mark Townsend est ingénieur senior en automatisation, avec plus de 18 ans d’expérience sur les plateformes Allen-Bradley, notamment ControlLogix, CompactLogix et les anciens systèmes SLC-500. Son travail quotidien consiste à développer la logique RSLogix / Studio 5000 et à mettre en service les IHM FactoryTalk View sur des parcs vieillissants et hétérogènes.

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.