От таблиц истинности к надежной логике: мастерство булевых выражений для безопасного цифрового проектирования
Когда инженеры проектируют цифровые системы, они обычно начинают с таблицы истинности, описывающей желаемое логическое поведение.
Сложность заключается в выборе подходящей схемотехники — логических гейтов, релейных сборок или программируемых контроллеров — которая верно реализует это поведение.
Хотя опытные проектировщики могут мгновенно сопоставить таблицу истинности с аппаратным решением, существуют систематические методы, доступные любому инженеру.
Булева алгебра предоставляет четкий пошаговый метод превращения любой таблицы истинности в работающую схему.
Для иллюстрации рассмотрим реальную инженерную задачу: проектирование системы обнаружения пламени для сжигателя токсичных отходов.
Высокотемпературное сжигание используется для нейтрализации опасных отходов. Этот метод распространен для медицинских отходов, которые могут содержать смертоносные патогены.

Пока пламя горит в сжигателе, безопасно подавать отходы для уничтожения. Если пламя гаснет, оставшиеся отходы могут выйти через выхлоп ненейтрализованными, создавая серьезный риск для здоровья.
Наша система поэтому требует надежного детектора пламени, разрешающего подачу отходов только при подтвержденном пламени.
Обнаружение пламени можно осуществлять оптическими, термическими или электропроводностными датчиками — каждый со своими достоинствами и недостатками.
Учитывая высокую опасность, проект требует избыточного обнаружения: нескольких датчиков, чтобы единичный сбой не мог вызвать небезопасную работу.
Каждый датчик выдает нормально разомкнутый контакт, который замыкается при обнаружении пламени. Эти контакты подаются на входы логической системы.

Наша цель — построить логику, открывающую клапан отходов только когда датчики подтверждают пламя.
Сначала определим логическое поведение. Достаточно ли одного датчика? Нет — открытие клапана, если только один из трех датчиков сообщает о пламени, подрывает избыточность и безопасность.
Вместо этого требуем согласия всех трех датчиков перед открытием клапана. Этот подход гарантирует, что единичное ложное срабатывание «пламя» не удержит клапан открытым; все три должны отказать одновременно — крайне маловероятный сценарий.
Следовательно, таблица истинности проста: выход высокий только когда входы A, B и C все высоки.

Эта функция легко реализуется трехвходовым гейтом И, выдающим высокий уровень только при всех высоких входах.

Если используются реле, поведение И можно воспроизвести последовательным соединением контактов датчиков или последовательно соединенными контактами реле — только тогда питание достигнет клапана, когда каждый датчик подтвердит пламя.

Хотя этот дизайн максимизирует безопасность, он делает систему уязвимой к «ложно-отрицательным» отказам датчиков: датчик, не обнаруживший реальное пламя, закроет клапан без нужды, тратя топливо и время простоя.
Идеально хотеть логику, терпящую один ложно-отрицательный датчик, но защищающую от ложноположительных ошибок. Правило «два из трех» удовлетворяет обе нужды: клапан открывается, если хотя бы два датчика сообщают о пламени.
Ниже таблица истинности для этой логики.

Использование Суммы Произведений
На первый взгляд неочевидно, какая схема реализует эту таблицу истинности. Форма Суммы Произведений (СП) булева выражения решает эту проблему.
Выражение СП — это сумма слагаемых-произведений, каждое произведение являясь конъюнкцией переменных или их инверсий.
Например: ABC + BC + DF — простое СП, где «ABC», «BC», «DF» — слагаемые-произведения.
Для получения СП из таблицы истинности перечислите все строки, где выход равен 1, и запишите слагаемое-произведение, равное 1 для этих входов.
Рассмотрим строку A=0, B=1, C=1. Слагаемое-произведение A′BC равно 1 только при этом точном условии.

Остальные строки с единицей дают еще три слагаемых-произведения:

Объединяя их логическим ИЛИ, получаем полное СП-выражение для логики «два из трех»:

Имея СП, проектирование схемы становится прямым: каждое слагаемое-произведение отображается на гейт И, а ИЛИ этих гейтов дает финальный выход.


Хотя верные, эти схемы могут быть громоздкими. Булева алгебра позволяет радикально упростить выражение.

С упрощенным выражением можно построить более компактную логику — на гейтах или реле — сохраняя ту же функцию.


Любая из этих оптимизированных схем надежно управляет клапаном сжигателя на основе подтверждения пламени по правилу «два из трех».
Можно еще повысить безопасность, добавив логику обнаружения расхождений датчиков — любого состояния, где три входа не идентичны.
Когда все датчики исправны, они либо все читают низкий (000), либо все высокий (111). Любая другая комбинация (001, 010, 011, 100, 101, 110) указывает на несоответствие и потенциальный сбой.
Сигнализация, срабатывающая на таком расхождении, позволяет операторам решить: продолжать работу или остановиться для безопасности.
Для проектирования этого «детектора расхождений датчиков» расширим таблицу истинности дополнительным столбцом выхода, представляющим сигнал тревоги.

Формирование СП для этого столбца потребовало бы шести слагаемых-произведений — громоздко и ошибочно.

Использование Произведения Сумм
Вместо суммирования строк с единицей можно построить выражение Произведения Сумм (ПС), фиксирующее строки с нулем, что дает меньше слагаемых.
Выражение ПС перемножает суммы переменных (слагаемые-суммы). Например: (A + B)(C + D).
Сначала найдите строки с низким (0) выходом и запишите сумму, равную 0 при этих входных условиях.
Для первой строки (A=0, B=0, C=0) слагаемое-сумма — (A + B + C), равная 0 только когда все три нуля.

Только одна другая строка дает 0 на выходе: A=1, B=1, C=1. Соответствующая сумма — (A′ + B′ + C′).

Полное ПС-выражение — произведение этих двух сумм:

В то время как СП естественно отображается на сеть гейтов И, питающих один гейт ИЛИ, ПС отображается на гейты ИЛИ, питающие один гейт И.

Альтернативно, релейная реализация ПС использует параллельные контакты в последовательном соединении, зеркаля конфигурацию гейтов.

Эти две схемы иллюстрируют только логику расхождений датчиков; полная система объединяет детектор «хорошего пламени» и детектор расхождений.
В реализации на ПЛК полная логика может выглядеть так:

И форма СП, и форма ПС — мощные инструменты вывода функциональной логики из таблицы истинности. Они обеспечивают детерминированный, автоматизируемый дизайн — так компьютер мог бы генерировать пользовательскую логическую схему из спецификации.
Так как процесс преобразования прост, он требует минимального творчества, позволяя проектировщикам фокусироваться на высокоуровневых вопросах безопасности и производительности.
ОБЗОР:
- Сумма Произведений (СП) строится перечислением строк с высоким выходом, созданием слагаемого-произведения для каждой и их суммированием.
- СП чисто отображается на серию гейтов И, питающих один гейт ИЛИ.
- Произведение Сумм (ПС) строится перечислением строк с низким выходом, созданием слагаемого-суммы для каждой и их перемножением.
- ПС отображается на серию гейтов ИЛИ, питающих один гейт И.
СВЯЗАННЫЕ РАБОЧИЕ ЛИСТЫ:
- Рабочий лист по выражениям Суммы Произведений и Произведения Сумм
- Рабочий лист по булевой алгебре
Промышленные технологии
- Основной чек-лист устранения неисправностей: стратегии быстрой диагностики сбоев системы
- Группировка бит в цифровых системах: терминология и значение
- Проектирование безопасных (fail-safe) систем управления для надежности и безопасности
- Понимание булевой алгебры: от логических основ к цифровым схемам
- Булева арифметика: сложение, умножение и дополнение в цифровой логике
- Ключевые тождества булевой алгебры: исчерпывающий обзор
- Основные правила упрощения булевых выражений для проектирования логических схем
- Выбор инструмента для упрощения логики: карты Карно, булева алгебра и САПР
- Понимание булевых отношений с помощью диаграмм Венна
- Максимизация срока службы системы пожаротушения