从真值表到可靠逻辑:掌握布尔表达式实现安全数字设计
工程师设计数字系统时,通常从描述期望逻辑行为的真值表入手。
挑战在于选择合适的电路——无论是逻辑门、继电器组件还是可编程控制器——忠实实现该行为。
资深设计师或许能瞬间将真值表映射为硬件方案,但存在系统化技术供所有工程师遵循。
布尔代数提供了清晰的分步方法,将任意真值表转化为功能电路。
为演示此过程,我们以一个现实工程问题为例:为有毒废物焚烧炉设计火焰检测系统。
高温燃烧用于中和有害废物,此法常用于可能携带致命病原体的医疗废物处理。

只要焚烧炉内火焰持续存在,注入废物销毁即安全。若火焰熄灭,残余废物可能未经中和即从排气口排出,造成严重健康风险。
因此系统需要一个万无一失的火焰探测器,仅在验证到火焰时允许废物注入。
火焰检测可通过光学、热学或电导传感器实现——各有优劣。
考虑到高危险性,设计要求冗余检测:多个传感器,使单点故障无法触发不安全操作。
每个传感器提供常开触点,检测到火焰时闭合。这些触点接入逻辑系统输入端。

目标是构建逻辑,仅当传感器确认火焰时打开废物阀门。
首先定义逻辑行为。单个传感器够用吗?不够——若三个传感器中仅有一个报告火焰就开阀,违背了冗余与安全原则。
相反,我们要求三个传感器一致同意才开阀。这保证了单个虚假“火焰”读数无法维持阀门开启;三个需同时失效——极不可能发生。
因此真值表简单:仅当输入 A、B、C 全为高时输出高。

此功能易用三输入与门实现,仅当所有输入为高时输出高。

若用继电器,与行为可通过串联传感器触点或串联继电器触点复现——仅当每个传感器确认火焰时电源才到达阀门。

此设计虽最大化安全,但也易受“火焰假阴性”故障影响:未检测到实际火焰的传感器会不必要地关阀,浪费燃料和停机时间。
理想情况下,我们希望逻辑系统能容忍一个假阴性传感器,同时仍防范假阳性错误。“三选二”规则满足双重需求:至少两个传感器报告火焰时开阀。
以下为该逻辑的真值表。

使用积和式
乍看不明显哪种电路实现此真值表。积和式(SOP)布尔表达式解决了这个问题。
SOP 表达式是乘积项的求和——每个乘积项是变量或其补码的合取。
例如:ABC + BC + DF 是简单 SOP,其中“ABC”、“BC”、“DF”为乘积项。
从真值表生成 SOP:列出输出为高(1)的每一行,写出仅在该输入下等于 1 的乘积项。
以 A=0, B=1, C=1 行为例,乘积项为 A′BC,仅在该精确条件下为 1。

其余高输出行产生三个更多乘积项:

用逻辑或合并得到三选二逻辑的完整 SOP 表达式:

得到 SOP 后设计电路直观:每个乘积项映射为一个与门,这些门的或运算产生最终输出。


虽正确,但电路可能臃肿。布尔代数允许大幅化简表达式。

用化简表达式可构建更精简的逻辑——无论用门还是继电器——同时保持相同功能。


任一精简电路均能基于三选二火焰确认可靠控制焚烧炉废物阀门。
我们可进一步增强安全性,增加检测传感器分歧的逻辑——即三输入不全相同的任意状况。
传感器正常工作时,应全读低(000)或全读高(111)。任何其他组合(001、010、011、100、101、110)均指示不匹配和潜在故障。
由此触发的报警让操作员评估是继续运行还是为安全关机。
设计此“传感器分歧”探测器,需在真值表增加报警信号输出列。

为该列生成 SOP 涉及六个乘积项——繁琐且易错。

使用和积式
不求和高输出行,而是构建捕获低输出行的和积式(POS)表达式,可得更少项数。
POS 表达式将变量求和项(或项)相乘。例如:(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′)。

完整 POS 表达式为这两个求和项的乘积:

SOP 自然映射为多个与门接单一或门网络,POS 映射为多个或门接单一与门。

或者,POS 的继电器实现用并联触点串联,镜像门配置。

以上两电路仅演示传感器分歧逻辑;完整系统结合“正常火焰”与分歧探测器。
在 PLC 实现中,完整逻辑可能如下:

SOP 和 POS 均是从真值表推导功能逻辑的强力工具。它们支持确定性、自动化设计——计算机可仅凭规格生成定制逻辑电路。
因转换过程直观,极少需创造性思维,设计师可专注于更高层面的安全与性能问题。
回顾:
- 积和式(SOP):列出高输出行,各行建乘积项,求和得表达式。
- SOP 映射为一系列与门接单一或门。
- 和积式(POS):列出低输出行,各行建求和项,相乘得表达式。
- POS 映射为一系列或门接单一与门。
相关练习:
- 积和式与和积式表达式练习题
- 布尔代数练习题
工业技术