Реализация ступенчатой логики XOR с 3 переключателями и внутренним битом
Реализуйте схему управления светом с логической функцией исключающего ИЛИ на основе трёх однополюсных однопозиционных переключателей (3-SPST) в LogixPro или ...
Классическое упражнение — три переключателя SPST управляют одним светом так, чтобы любой отдельный переключатель переключал выход, — сводится к трёхвходовой исключающей операции ИЛИ (нечётной чётности). Двухвходовой XOR — это знакомая пара перекрёстных ветвей XIC/XIO. Простое расширение этого шаблона третьей параллельной ветвью не обобщается: оно реализует сумму попарных XOR и включает свет при замыкании всех трёх переключателей, хотя по условию требуется только нечётная чётность. Принятое исправление — использовать внутренний релейный бит, хранящий A⊕B, а затем вычислить на втором этапе (A⊕B)⊕C.
Нечётная чётность для трёх поддерживаемых входов реализуется через XOR, а не через трёхветочную схему ИЛИ.
Таблица истинности (1 = замкнут)
| S1 | S2 | S3 | Свет | Чётность |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | чётный |
| 0 | 0 | 1 | 1 | нечётный |
| 0 | 1 | 0 | 1 | нечётный |
| 0 | 1 | 1 | 0 | чётный |
| 1 | 0 | 0 | 1 | нечётный |
| 1 | 0 | 1 | 0 | чётный |
| 1 | 1 | 0 | 0 | чётный |
| 1 | 1 | 1 | 1 | нечётный |
Базовая схема с двумя входами
|--[S1 XIC]-+-[S2 XIO]-+ | | +--( Light )--| |--[S1 XIO]-[S2 XIC]---+ |
Сопоставьте I:1/0, I:1/1 → O:2/0 в симуляторах LogixPro/RSLogix 500 (или с тегами BOOL в Logix Designer). Проверьте четыре строки перед добавлением S3.
Почему третья параллельная ветвь не работает
Y = (S1⊕S2) ∨ (S1⊕S3) ∨ (S2⊕S3) принимает значение true для строки с тремя замкнутыми переключателями, поскольку каждая пара различается. Учащиеся описывают это проявление как «залипание» света во включённом состоянии после замыкания двух переключателей. Это попарное включение ИЛИ, а не XOR.
Каскадируйте XOR через B3:0/0 (или тег BOOL) — не соединяйте попарные этапы ИЛИ параллельно.
Реализация с внутренним битом
Ступень 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]---+ | Ступень 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]---+ |
Поскольку XOR является ассоциативной операцией, порядок переключателей не имеет значения. В Logix Designer те же уравнения преобразуются в XOR_Mid := S1 XOR S2; Light := XOR_Mid XOR S3; для структурированного текста или идентичных шаблонов контактов на тегах BOOL. Промежуточный бит записывается на одной ступени и считывается на следующей в том же цикле сканирования, что для этого шаблона является намеренным и стабильным поведением.
Процедура в LogixPro / RSLogix 500
- Подтвердите наличие дискретных входных и выходных модулей в симуляторе (сопоставление по умолчанию: I:1 / O:2)
- Убедитесь, что существует бинарный файл B3 со свободными битами, или создайте тег BOOL с именем XOR_Mid в Logix Designer
- Создайте ступень 2, управляющую B3:0/0 от S1 и S2 с перекрёстными контактами XIC/XIO
- Build rung 3 driving O:2/0 from B3:0/0 and S3 using the same crossed pattern
- Создайте рунг 3, управляющий O:2/0 через B3:0/0 и S3 по той же перекрёстной схеме
- Загрузите программу, переведите процессор в режим RUN и снимите все принудительные установки перед прохождением таблицы истинности
Кратковременно принудительно включите каждый входной светодиод и выходную лампу по одному разу, чтобы проверить проводку, затем снимите принудительные установки
| План адресов и альтернативы | Платформа | Промежуточный |
|---|---|---|
| Примечания | B3:0/0 | RSLogix 500 / SLC |
| Бит двоичного файла | XOR_Mid BOOL | Область программы или контроллера |
| LogixPro | B3:0/0 | Соответствует лабораторным работам RSLogix 500 |
Необязательная диагностика сохраняет оба промежуточных значения: B3:0/0 = S1 XOR S2 и B3:0/1 = mid XOR S3, а затем управляет лампой через B3:0/1, чтобы онлайн-мониторы могли разорвать цепочку на любом из этапов. Побитовые инструкции XOR могут объединять множество входов для проверки чётности, но скрывают учебный пример с тремя переключателями. Избегайте расширений по законам де Моргана, пытающихся выразить «не любые два истинных» в виде леса контактов: каскад внутренних битов остаётся более удобной для сопровождения формой и на учебных стендах, и в производственных селекторах режима.
Пройдите все восемь строк таблицы чётности перед утверждением
- Пройдите все восемь строк таблицы истинности при снятых принудительных установках
- Убедитесь, что три замкнутых переключателя зажигают лампу (нечётная чётность)
- Переключите каждый переключатель по отдельности и убедитесь, что выход меняется
- Если лампа фиксируется во включённом состоянии при двух входах, значит, у вас по-прежнему логика попарного OR
- Необязательно: настройте аварийный сигнал, если после устранения дребезга два переключателя режима с фиксацией показывают значение true на реальных машинах
- Задокументируйте булеву тождественность (A XOR B) XOR C в комментариях рунга для следующего редактора
Называйте промежуточные переменные по их функции (XOR_Mid, ModeParity), а не используйте безымянные биты, чтобы следующие изменения оставались понятными. Применяйте тот же принцип ко всем паркам оборудования, стандартизированным на системах PLC и PAC.
Об авторе
Марк Таунсенд | Старший инженер по автоматизации — системы Allen-Bradley
Марк Таунсенд — старший инженер по автоматизации с более чем 18-летним опытом работы с платформами Allen-Bradley, включая ControlLogix, CompactLogix и устаревшую серию SLC-500. В его повседневную работу входят разработка логики в RSLogix / Studio 5000 и ввод в эксплуатацию HMI FactoryTalk View на устаревших и смешанных парках оборудования.