2. 逻辑控制基础

工业控制系统中的每一个自动化动作,从电机启停、阀门开闭到安全联锁、温度调节,其底层本质都是数字逻辑的运算与状态保持。PLC(可编程逻辑控制器)之所以能够可靠地执行梯形图、功能块图或结构化文本,正是因为这些编程语言最终都被编译为布尔代数表达式,并由硬件逻辑门电路或等效的软件逻辑运算来执行。理解布尔代数、真值表、逻辑门以及组合逻辑与时序逻辑的本质区别,是掌握工业级复杂逻辑控制设计的基石。本章将从数学基础出发,逐步深入到硬件实现与工程应用,帮助读者建立从抽象公式到具体控制方案的完整认知链路。

数字逻辑控制知识框架与工程映射 布尔代数 · 与(AND) / 或(OR) / 非(NOT) · 摩根定律 / 分配律 · 逻辑化简与表达式变换 → 梯形图触点/线圈的数学本质 真值表 · 输入/输出全组合枚举 · 逻辑功能验证与排障 · 卡诺图化简基础 → 程序仿真测试用例设计 逻辑门 · AND / OR / NOT / XOR · NAND / NOR / 三态门 · 硬件电路实现基础 → PLC输入/输出电路原理 组合逻辑 · 输出仅取决于当前输入 · 无记忆 / 无反馈 · 编码器/译码器/多路选择器 → 纯触点逻辑联锁 时序逻辑 · 输出取决于输入+状态 · 触发器/寄存器/计数器 · 时钟驱动 / 状态保持 → 定时器/计数器/步进控制 工业控制工程映射 · 梯形图:常开/常闭触点 = 输入变量取原值/取反;线圈 = 输出赋值 · 功能块图:AND/OR 块 = 逻辑门;SR/RS 触发器 = 时序状态保持 · 安全联锁:组合逻辑实现互锁;时序逻辑实现顺序启动/停止

上图展示了本章的核心知识框架:布尔代数提供数学语言,真值表提供验证工具,逻辑门是硬件实现载体,而组合逻辑与时序逻辑则构成了工业控制中两类最基本的逻辑行为模式。下面我们将逐一深入剖析。

2.1 布尔代数:逻辑控制的数学语言

2.1.1 核心原理:从开关到代数系统

布尔代数由乔治·布尔于19世纪提出,其变量只有两个取值:真(1)和假(0)。在工业控制中,1通常代表高电平、触点闭合、设备运行;0代表低电平、触点断开、设备停止。三种基本运算构成了全部逻辑功能:

  • 与运算(AND):仅当所有输入为1时,输出才为1。对应梯形图中的串联触点。
  • 或运算(OR):只要有一个输入为1,输出即为1。对应梯形图中的并联触点。
  • 非运算(NOT):输出为输入的取反。对应梯形图中的常闭触点。

除了基本运算,还有两个工程中极为重要的导出运算:异或(XOR)——输入不同则输出1,常用于校验和故障检测;同或(XNOR)——输入相同则输出1,常用于比较器。布尔代数遵循交换律、结合律、分配律、吸收律和摩根定律。其中摩根定律在PLC编程中尤为关键:(A·B)' = A' + B',它允许我们在不改变逻辑功能的前提下,将“与”结构转换为“或”结构,从而优化梯形图的扫描效率或适配不同的硬件输入极性。

2.1.2 判断方法:表达式化简与等价变换

在实际编程中,我们经常需要判断两个逻辑表达式是否等价,或者将复杂的表达式化简为最简形式。常用方法包括:

  1. 代数化简法:利用布尔公理和定理逐步化简。例如,F = A·B + A·B' 可化简为 F = A。
  2. 卡诺图法:适用于变量较少(≤4个)的情况,通过图形化相邻项合并来获得最简与或式。
  3. 真值表对比法:列出两个表达式的完整真值表,逐行比对输出是否一致。

在工业环境中,化简的意义不仅在于减少程序行数,更在于降低扫描周期、减少故障点。例如,一个包含冗余触点的联锁回路,化简后可能减少一个输入点的依赖,从而降低因该点故障导致的误停机风险。

2.1.3 案例拆解:电机启停的布尔建模

以一个典型的电机启保停电路为例。设启动按钮为SB1(常开,瞬时闭合),停止按钮为SB2(常闭,按下断开),接触器线圈为KM。其布尔表达式为:KM = (SB1 + KM) · SB2。这里KM既出现在输出端,也出现在输入端,形成了自保持(自锁)逻辑。展开真值表可以看到,当SB1=1且SB2=1时,KM=1;当SB1=0且SB2=1时,KM保持原状态(因为KM自身为1);当SB2=0时,无论SB1和KM为何值,KM=0。这个简单的例子揭示了布尔代数在描述反馈回路时的强大能力——它引入了“状态”的概念,为后续时序逻辑埋下伏笔。

工程经验:在PLC程序中,应避免使用过于复杂的布尔表达式嵌套。建议将复杂逻辑拆分为多个中间变量(如M0.0、M0.1),每个中间变量对应一个功能明确的子逻辑。这不仅能提高程序可读性,也便于在线监控和故障定位。

2.2 真值表:逻辑功能的完整描述与验证工具

2.2.1 核心原理:穷举所有输入组合

真值表是描述逻辑功能最直观的方法。对于n个输入变量,真值表共有2^n行,每一行对应一种输入组合及其对应的输出值。在工业控制中,真值表不仅是设计阶段的辅助工具,更是调试和验收阶段的重要依据。例如,一个双通道安全光幕的互锁逻辑,其输入为光幕1(A)和光幕2(B),输出为允许运行信号(Y)。其真值表如下:

A(光幕1)B(光幕2)Y(允许运行)逻辑说明
000两束光均被遮挡,禁止运行
010光幕1被遮挡,禁止运行
100光幕2被遮挡,禁止运行
111两束光均畅通,允许运行

这个真值表清晰地表明,该逻辑是一个两输入“与”门。如果实际调试中发现当A=0、B=1时Y=1,则说明程序或接线存在错误,真值表提供了最直接的排障依据。

2.2.2 判断方法:从真值表到逻辑表达式

给定真值表,我们可以通过两种标准方法推导出逻辑表达式:

  1. 最小项之和(积之和SOP):找出所有输出为1的行,将每一行的输入组合写成乘积项(变量为1取原变量,为0取反变量),然后将这些乘积项相加。
  2. 最大项之积(和之积POS):找出所有输出为0的行,将每一行的输入组合写成和项,然后将这些和项相乘。

在PLC编程中,SOP形式直接对应“并联支路串联触点”的梯形图结构,而POS形式对应“串联支路并联触点”的结构。选择哪种形式取决于哪种结构在梯形图中更简洁、更符合安全惯例(例如,安全回路通常采用正逻辑设计)。

2.2.3 实战场景:安全联锁逻辑的真值表验证

考虑一个工业炉的燃烧器控制,其安全联锁条件包括:燃气压力正常(P=1)、助燃空气压力正常(A=1)、炉膛无火焰(F=0表示无火焰,允许吹扫)。只有当吹扫完成(T=1)且上述条件满足时,才允许打开燃气阀(V=1)。其逻辑表达式为:V = P · A · F' · T。在调试阶段,工程师使用真值表逐一模拟所有16种输入组合(P、A、F、T),并对比PLC实际输出与预期输出。如果发现当P=1、A=1、F=0、T=0时V=1(预期应为0),则说明吹扫计时器逻辑有误,可能未正确复位。这种基于真值表的系统性测试,比随机点动测试更能覆盖边界条件。

风险提示:真值表验证必须包含“全0”和“全1”两种极端输入组合。在工业现场,传感器断线(信号为0)和电源干扰(信号误为1)是常见故障,真值表测试应模拟这些故障状态,确保逻辑输出处于安全侧(通常为0或停机状态)。

2.3 逻辑门:从数学到硬件的桥梁

2.3.1 核心原理:基本门电路与复合门

逻辑门是数字电路的基本构建单元。在工业控制设备中,无论是PLC的输入滤波电路、输出驱动电路,还是安全继电器模块内部,都集成了大量的逻辑门。基本逻辑门包括:

  • 与门(AND):输出为所有输入之积。
  • 或门(OR):输出为所有输入之和。
  • 非门(NOT):输出为输入取反。
  • 与非门(NAND):与门输出取反,具有通用性,可单独构成任何逻辑。
  • 或非门(NOR):或门输出取反,同样具有通用性。
  • 异或门(XOR):输入不同则输出1,常用于比较器和奇偶校验。

在PLC内部,这些逻辑门并非以分立元件形式存在,而是通过微处理器执行指令来实现。但理解硬件逻辑门有助于我们理解PLC输入端的“滤波时间常数”和输出端的“短路保护”等特性。例如,PLC的数字量输入模块通常包含RC滤波电路和施密特触发器,其作用相当于一个带滞回特性的非门+与门组合,用于消除触点抖动和电气噪声。

2.3.2 判断方法:逻辑门的等效变换

在电路设计中,经常需要将一种逻辑门转换为另一种。例如,利用摩根定律,可以将与门转换为或非门加非门的形式。在PLC梯形图中,这种变换体现在“常闭触点串联”与“常开触点并联”的互换。一个实用的判断技巧是:将梯形图中的串联视为与门,并联视为或门,常闭触点视为非门。当需要将安全逻辑从“正逻辑”(得电安全)改为“负逻辑”(失电安全)时,就需要对整个逻辑门网络进行德摩根变换。

2.3.3 案例拆解:安全继电器的冗余逻辑门实现

以Pilz安全继电器为例,其内部采用双通道输入(I1、I2)和强制导向继电器输出。其逻辑要求是:当I1和I2同时为1(表示安全门关闭且反馈回路正常)时,输出K1、K2才得电。这本质上是一个两输入与门。但为了满足安全等级(如PLe),内部采用两个微处理器或两套独立逻辑门电路进行交叉监控。如果其中一个通道检测到不一致(例如I1=1、I2=0),则内部逻辑门输出立即断开,并进入锁定状态,必须手动复位才能恢复。这个案例说明,在工业安全领域,逻辑门不仅仅是简单的布尔运算,还包含了诊断覆盖率和故障安全等概念。

关键要点:在PLC编程中,我们通常不需要直接操作逻辑门,但理解逻辑门的电气特性(如传播延迟、扇出系数、电平阈值)对于诊断硬件故障至关重要。例如,当PLC输出模块的晶体管击穿时,其行为类似于一个“或门”被强制拉高,导致输出无法断开。

2.4 组合逻辑与时序逻辑:本质区别与工程应用

2.4.1 核心原理:有无“记忆”是分水岭

组合逻辑与时序逻辑是数字逻辑的两大分支,其根本区别在于输出是否仅取决于当前输入。

特征维度组合逻辑时序逻辑
输出决定因素仅当前输入当前输入 + 历史状态(存储元件)
记忆能力无有(触发器、寄存器)
时钟依赖不依赖时钟通常依赖时钟沿或使能信号
典型电路编码器、译码器、多路选择器、加法器计数器、移位寄存器、状态机、定时器
PLC对应功能纯触点逻辑、联锁、互锁定时器(TON/TOF)、计数器(CTU/CTD)、步进顺序器
故障特征输入变化输出立即变化,无延迟记忆输出变化滞后于输入,且与扫描周期、状态顺序相关

在PLC中,组合逻辑对应那些“一锤定音”的判断,例如:“如果急停按下或电机过载,则切断输出”。而时序逻辑对应那些需要“记住”过程的控制,例如:“按下启动按钮后,先开启冷却泵,3秒后再启动主电机”——这里的“3秒后”就是通过定时器(一种时序逻辑元件)实现的。

2.4.2 判断方法:如何区分一个控制逻辑的类型

工程师在阅读梯形图或功能块图时,可以通过以下三个问题快速判断逻辑类型:

  1. 是否存在反馈回路?输出线圈是否被用作同一网络或其他网络的输入触点?如果是,则为时序逻辑。
  2. 是否使用了定时器、计数器或锁存器?这些元件本身具有记忆功能,因此包含它们的逻辑必然属于时序逻辑。
  3. 当所有输入保持不变时,输出是否可能发生变化?如果可能(例如定时器计时到),则为时序逻辑;如果不可能,则为组合逻辑。

例如,一个简单的电机启动回路(启保停)包含自锁触点,属于时序逻辑。而一个单纯的“急停与门”回路(急停常闭触点与门控触点串联)则属于组合逻辑。

2.4.3 实战场景:组合逻辑与时序逻辑的协同——自动分拣系统

考虑一个物流分拣线控制系统。传感器S1检测到包裹到达,传感器S2检测到包裹进入分拣口。控制要求:当S1和S2同时为1时,启动推杆电机M。这看似是一个简单的与门(组合逻辑)。但实际工程中,S1和S2的脉冲宽度可能不同,且推杆动作需要持续一定时间以确保包裹被推出。因此,实际逻辑必须引入时序元件:

// 伪代码逻辑
Network 1: 组合逻辑判断
IF (S1 == 1 AND S2 == 1) THEN
    SET 推杆触发标志位
END_IF

Network 2: 时序逻辑控制
IF (推杆触发标志位 == 1) THEN
    启动定时器T1 (预设2秒)
    输出推杆电机M = 1
END_IF
IF (T1 计时到) THEN
    复位推杆触发标志位
    输出推杆电机M = 0
END_IF

在这个案例中,组合逻辑负责“瞬间判断”,时序逻辑负责“持续动作”。如果只用组合逻辑,推杆电机将只会在S1和S2同时为1的瞬间得电,可能因时间过短而无法完成推料动作。反之,如果只用时序逻辑而忽略组合判断,则可能导致误动作。两者的协同是工业控制中极为常见的模式。

2.4.4 常见误区与总结复盘

误区一:认为“所有带定时器的逻辑都是时序逻辑,所有不带定时器的都是组合逻辑”。实际上,一个不带定时器但带有自锁触点的回路(如启保停)也是时序逻辑,因为它具有状态保持能力。
误区二:在组合逻辑中忽略输入信号的“毛刺”。由于物理触点存在抖动,即使逻辑上属于组合逻辑,在PLC输入端也需要进行数字滤波(通常为0.1ms~10ms),否则可能导致输出误动作。
误区三:混淆PLC扫描周期与硬件逻辑门传播延迟。PLC的I/O刷新是周期性的,因此即使组合逻辑,其输出响应也存在一个扫描周期的延迟(通常为几毫秒到几十毫秒)。在高速联锁场合(如安全光幕),必须使用硬件安全继电器或专用的快速响应模块,而不能依赖PLC的扫描逻辑。