Логика лестницы XOR с тремя переключателями: правильная схема нечётной чётности
Исправленное руководство по логике лестничных схем XOR с тремя переключателями для платформ SLC 500 и Logix, охватывающее нечётную чётность, поэтапное исполь...
Три фиксируемых переключателя, управляющих одним выходом, часто представляют как упражнение по лестничной логике, но настоящий инженерный вопрос сформулирован точнее: должен ли выход быть включён, когда истинно нечётное число входов, или срабатывание любого переключателя должно просто менять предыдущее состояние выхода на противоположное? Это разные требования. Первое — комбинационная функция XOR, или нечётная чётность. Второе требует хранения состояния и обнаружения фронта.
Для трёх фиксируемых переключателей обычно задают нечётную чётность: лампа включена при одном или трёх замкнутых переключателях и выключена при нуле или двух. Если записать это требование до построения контактов, можно избежать ситуации, когда внешне правдоподобная ступень реализует неверную булеву функцию.
Трёхвходовая функция XOR истинна, когда число истинных входов нечётно; это не то же самое, что запомненная команда переключения.
Начните с восьми состояний входов
Ожидаемая последовательность выходных значений для входов S1, S2 и S3 — 0, 1, 1, 0, 1, 0, 0, 1, если двоичные состояния входов изменяются от 000 до 111. Проще говоря, один замкнутый переключатель включает выход, два замкнутых переключателя выключают его, а все три замкнутых переключателя снова включают его.
Именно на последнем состоянии многие объяснения дают сбой. Трёхвходовая функция XOR — это функция нечётной чётности, поэтому 111 должно давать истинный результат. Реализация, которая распознаёт только «ровно один истинный вход», не является XOR: она намеренно исключает состояние с тремя истинными входами. И наоборот, объединение трёх попарных выражений XOR через OR создаёт другую функцию: она истинна всегда, когда входы не равны между собой, включая состояния с двумя истинными входами, поэтому также не соответствует требуемой таблице истинности.
Самый надёжный подход при вводе в эксплуатацию — использовать таблицу истинности как критерий приёмки. Не оценивайте программу всего по двум или трём удобным положениям переключателей.
Каскадируйте два этапа XOR
Функция XOR ассоциативна, поэтому допустимо выражение (S1 XOR S2) XOR S3. В программе SLC 500 один внутренний бит может хранить результат первого этапа. На второй ступени этот бит объединяется с S3. Благодаря этому каждая ступень имеет небольшое, понятное назначение, а текущее состояние проще диагностировать онлайн.
В контактной реализации каждый двухвходовый этап XOR использует два параллельных пути: первый проверяет, что вход A истинен, а вход B ложен; второй — что A ложен, а B истинен. Эти пути объединяются на одной катушке. Такой же шаблон повторяется для промежуточного бита и третьего входа.
Промежуточный бит показывает результат S1 XOR S2 до того, как второй этап объединит его с S3.
Пример плана адресации
В типичном учебном проекте RSLogix 500 S1, S2 и S3 могут иметь адреса I:1/0, I:1/1 и I:1/2. Первая ступень записывает промежуточный результат в B3:0/0, а вторая — команду лампы в O:2/0. Эти адреса приведены только в качестве примера; реальные соответствия должна определять установленная конфигурация ввода-вывода.
У промежуточного адреса должен быть только один источник записи. Повторное использование B3:0/0 в другом месте или размещение ещё одной выходной инструкции для O:2/0 ниже по программе может перезаписать правильный результат в течение того же цикла. Прежде чем обвинять схему XOR, проверьте перекрёстные ссылки обоих адресов.
Побитовый XOR на уровне слов не является автоматически удобным сокращением для булевой логики
Набор инструкций SLC 500 включает инструкцию XOR для побитового исключающего ИЛИ между операндами-словами. Поддерживаемые операнды и назначения описаны в справочном руководстве по набору инструкций SLC 500 компании Rockwell Automation. Эта инструкция полезна для масок и упакованных слов состояния, но не отменяет необходимости определить, какие входные биты участвуют в одном решении о чётности.
Для трёх дискретных входов каскадная контактная логика обычно понятнее специалистам по обслуживанию. Реализация на уровне слов может быть оправдана, если программа уже упаковывает множество битов состояния и явно сводит их к результату проверки чётности, однако этап сведения всё равно должен быть видимым и протестированным.
Не путайте чётность с функцией переключения
Фиксируемая трёхпозиционная схема управления освещением меняет состояние выхода всякий раз, когда любое физическое устройство меняет положение. В чисто булевых терминах выход в каждый момент можно представить как чётность трёх положений переключателей. Хранение состояния не требуется, поскольку сами положения переключателей содержат это состояние.
Моментные кнопки работают иначе. Если нажатие любой из трёх кнопок должно переключать лампу, ПЛК должен обнаруживать фронт нарастания и один раз для каждого корректного нажатия инвертировать сохраняемый командный бит. Прямое применение XOR к трём моментным входам описывает только то, какие кнопки нажаты в данном цикле; оно не запоминает предыдущее состояние лампы.
Кроме того, реальные кнопки могут дребезжать. Поэтому схема переключения требует фильтрации входа, импульсного однократного срабатывания, чёткого владения сохраняемым битом и заданного начального состояния. В связанном руководстве по использованию значения одного таймера SLC для задания другого таймера показано, почему перемещение данных и порядок выполнения ступеней должны быть явными.
Вводите логику в эксплуатацию как функцию, а не как рисунок
Сначала проверьте промежуточный бит двухвходовой функции сам по себе. Он должен быть истинным для 01 и 10 и ложным для 00 и 11. Затем проверьте конечный выход для всех восьми состояний трёх входов. Записывайте наблюдаемое состояние, а не полагайтесь только на зелёную подсветку ступени, поскольку форсирование, дублирующиеся катушки и обновление онлайн-индикации могут скрыть фактический источник управления выходом.
Затем проверьте поведение при включении питания, переходы между режимами программы, подстановку входов и реакцию на отказ или отсоединение полевой цепи. Логика XOR может выявлять рассогласование, но сама по себе не является диагностикой безопасности. Если переключатели участвуют в защитной функции, проект должен предусматривать входы с соответствующим уровнем безопасности, контроль рассогласования, обнаружение неисправностей и оценку риска, соответствующую машине.
Варианты оборудования и миграции для устаревших и современных контроллеров можно изучить в каталоге систем PLC и PAC, однако перед адаптацией этого примера необходимо подтвердить семейство процессора, напряжение ввода-вывода, адресацию и владельца программы.
Почему вариант с внутренним битом проще обслуживать
Одна расширенная ступень может напрямую выразить трёхвходовую нечётную чётность, но для этого потребуются четыре параллельные комбинации, и такую схему будет сложнее проверять по мере добавления условий. Каскадирование двухвходовых этапов делает булеву логику очевидной, создаёт контрольную точку для диагностики и обеспечивает понятное соответствие между адресами RSLogix 500 и именованными тегами BOOL в Logix Designer.
Редакционная оценка: лучшее решение на лестничной логике — то, чью таблицу истинности, поведение памяти и реакцию на отказ можно объяснить во время передачи системы специалисту по обслуживанию. Внутренний бит — не напрасно потраченная память, если он не позволяет следующему инженеру принять за одну и ту же функцию нечётную чётность, логику «ровно один» и запомненное переключение.
Часто задаваемые вопросы
Должен ли выход быть включён, когда все три переключателя замкнуты?
Да, если требуется трёхвходовая функция XOR или нечётная чётность. Три истинных входа — нечётное количество, поэтому выход истинен. Если состояние 111 должно давать ложный результат, требуется функция «ровно один», а не XOR.
Может ли инструкция XOR в SLC 500 заменить две лестничные ступени?
Она выполняет побитовое XOR над операндами-словами. Она может быть частью решения с упакованными битами, но три отдельных входных бита всё равно необходимо организовать и свести так, чтобы целевой бит представлял требуемую чётность. Для небольшой дискретной схемы обычно понятнее использовать два контактных этапа.
Добавляет ли промежуточный бит задержку в один цикл?
Нет, если ступень, записывающая промежуточный бит, выполняется раньше ступени, которая его считывает, в той же процедуре и задаче. Вторая ступень увидит значение, записанное ранее в этом же цикле. Порядок выполнения должен оставаться документированным и контролируемым.
Что изменится, если полевые устройства являются моментными кнопками?
Переключение с помощью моментных кнопок требует обнаружения фронта и хранения состояния выхода. Одна только комбинационная функция XOR не может запомнить, была ли лампа до этого включена или выключена.
Подходит ли XOR для схемы безопасного голосования?
Сам по себе — нет. Обычный XOR только оценивает булевы состояния. Для применения в системах безопасности требуются проверенная архитектура безопасности, диагностическое покрытие, контроль времени рассогласования, соответствующее оборудование и проверка по применимой оценке риска.