第5章 布尔代数在PLC中的应用 直到目前为止,尚未见到布尔代数在PLC中的系统应用,由于作者在这方面的应用有限,在此将自己把布尔代数应用在PLC中的经验介绍给大家,在此抛砖引玉。 布尔代数也称为逻辑代数,源于哲学领域中的逻辑学。1847年,英国数学家乔治·布尔(George Boole)成功地将形式逻辑归结为一种代数演算,创立了有名的布尔代数。1938年,香农(Shannon)将布尔代数电话继电器的开关电路的设计,提出了“开关代数”。 作者从PLC的角度出发,将布尔代数引入PLC中,供读者参考应用。 在PLC梯形图中最重要的就是各种接点的串并联电路。前面我们讲过,接点接通用1表示,接点断开用0表示。接点的串并联可以用逻辑表达式表示,用布尔代数就可以对逻辑表达式进行逻辑运算,根据控制要求得出PLC控制梯形图。 5.1PLC控制电路的基本组成 PLC电气控制电路根据逻辑关系可以分成3个组成部分。 1. 输入元件 PLC的输入元件为输入继电器X。 输入继电器X用于连接外部的输入信号,是控制电路的输入逻辑变量,用于对PLC电路的控制。 输入继电器X在梯形图中是无记忆元件,不允许有线圈。 连接于PLC输入端的输入元件有如下两种。 (1) 主令元件是人向控制电路发布控制指令的元件,如按钮、开关、数字开关等。 (2) 检测元件是电路和电气控制设备本身向控制电路发布控制指令的元件,用于对电路和电气控制设备的某些物理量(如行程距离、温度、转速、压力和电流等)的检测。常用的检测元件有行程开关、接近开关、热继电器、电流继电器和速度继电器等。 2. 中间逻辑元件 除了PLC的输入继电器X和输出继电器Y之外的软元件都是中间逻辑元件,如M、T、C、D、Z、V。 中间逻辑元件是梯形图中的中间逻辑变量,用于对梯形图中变量的逻辑变换和记忆等。 3. 输出执行元件 PLC的输出执行元件为输出继电器Y。 输出元件用于对电路控制结果的执行,是控制电路的输出逻辑变量,也具有变量的逻辑变换和记忆功能。 连接于PLC输出电路的电气元件可分为有记忆功能和无记忆功能两种。常用的有记忆功能的输出执行元件有接触器、各种继电器等。无记忆功能的输出执行元件有信号灯、报警器、电磁铁、电磁阀和电动机等。 所谓有记忆功能元件,通常是指有线圈也有接点的元件,例如辅助继电器M,在梯形图中可以有接点,也可以有线圈。 无记忆功能元件是指只有接点而没有线圈的元件,输入继电器X是无记忆功能元件,在梯形图中只有接点,没有线圈。 5.2PLC位元件的状态和值 位元件(也称布尔元件)是指只有“0”和“1”两种状态或值的元件。 PLC中的位元件有输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、定时器T、计数器C和数据寄存器D□.b。 PLC中的软元件有两种状态,一种是原始状态,另一种是动作状态。 通常规定软元件未受激励时的原始状态为0状态,受激励时而动作的状态为1状态。 接点在断开时的值为0,闭合时的值为1。 在未受外力的原始状态下,处于断开状态的开关(接点)称为常开开关(接点),处于接通状态的开关(接点)称为常闭开关(接点)。显然,常开开关(接点)在原始状态下的值为0,常闭开关(接点)在原始状态下的值为1。 通常规定元件在失电状态下为0状态,对于有记忆元件,常开接点的值为0,常闭接点的值为1; 元件在得电状态下为1状态,对于有记忆元件,常开接点的值为1,常闭接点的值为0。 元件的状态和值如表51所示。 表51元件的状态和值 原始 状态 动作 状态 常 开 接 点 常 闭 接 点 原始状态的值 动作状态的值 原始状态的值 动作状态的值 输入元件 0 1 0 1 1 0 有记忆元件 0 1 0 1 1 0 无记忆元件 0 1 (无接点) 常开接点的值和元件本身的状态一致,称为原变量。 常闭接点的值和元件本身的状态相反,称为反变量。 5.3PLC中的接点种类 PLC中的接点是位元件,元件的状态和值可以用一位二进制数(0或1)来表示。例如X1=0,Y1=1等。 PLC中接点的种类有6种(以X0为例): 常开接点X0、常闭接点X0、上升沿常开接点X0↑、下降沿常开接点X0↓、上升沿常闭接点X0↑、下降沿常闭接点X0↓。 PLC中接点的种类及图形符号如表52所示。 表52PLC中接点的种类 接点名称 常开接点 常闭接点 上升沿常开 接点 下降沿常开 接点 上升沿常闭 接点 下降沿常闭 接点 接点符号 X0 X0 X0↑ X0↓ X0↑ X0↓ 图形符号 5.4布尔代数的基本逻辑运算 1. 与运算 与运算也称逻辑乘或者逻辑与,在PLC中就是接点的串联,如图51所示。 图51的逻辑表达式为: Y0=X0·X1或Y0=X0×X1或Y0=X0 X1 式中“· ”“×”称为逻辑与,或者称为逻辑乘。 2. 或运算 或运算也称逻辑加,在PLC中就是接点的并联,如图52所示。 图51接点的串联 图52接点的并联 图52的逻辑表达式为: Y0=X0+X1 式中 “+”称为逻辑加。 3. 非运算 非运算也称逻辑反,在PLC中就是接点的取反,如图53所示。 图53接点的取反 图53(a)的逻辑表达式为: M0=X4×X5 图53(b)的逻辑表达式为: Y1=(X2+X3)X1 式中“——”称为逻辑取反,或者称为逻辑取非。 4. 异或运算和同或(异或非)运算 异或运算电路如图54所示。 图54接点的异或连接 图54(a)的逻辑表达式为: M3=M0M1+M0M1=M0M1 图54(b)的逻辑表达式为: M3=M0+M1M0+M1=M0M1 式中 “”称为逻辑异或运算。 在异或电路中,两个变量M0和M1不相同时,即一个为0,一个为1时,结果为1。即: M0M1=00=0,(M0和M1都为0) M0M1=11=0,(M0和M1都为1) M0M1=01=1,(M0为0,M1为1) M0M1=10=1,(M0为1,M1为0) 同或运算电路如图55所示。 图55接点的同或连接 图55(a)的逻辑表达式为: M3=M0M1+M0M1=M0⊙M1 图55(b)的逻辑表达式为: M3=M0+M1M0+M1=M0⊙M1 式中 “⊙”称为逻辑同或运算,或者称为逻辑异或非运算。 在同或电路中,两个变量M0和M1同时为0,或同时为1时,结果为1。即: M0⊙M1=0⊙0=1 (M0和M1都为0) M0⊙M1=1⊙1=1 (M0和M1都为1) M0⊙M1=0⊙1=0 (M0为0,M1为1) M0⊙M1=1⊙0=0 (M0为1,M1为0) 显而易见,异或取反就是同或,同或取反就是异或。 M0M1=M0⊙M1M0⊙M1=M0M1 5.5梯形图逻辑表达式的基本定律 布尔代数中的与、或、非三种运算可以导出布尔代数运算的一些基本定律,再由这些定律导出一些常用公式。它们为逻辑函数的化简提供了理论依据,也是分析和设计PLC梯形图的重要工具。 为了公式的简洁,下面用大写字母A、B、C、D等表示变量。 1. 基本定律 1) 与常量有关的定律 01率: A·0=0 A+1=1 图56为01率等效图。 图5601率等效图 自等率(见图57): A·1= A A+0=A 图57自等率等效图 2) 与普通代数相似的定律 交换律: A·B=B·A A+B=B+A 图58为01交换率等效图。 图58交换率等效图 分配律: A·(B+C)= A·B + A·C A+(B·C)=(A+B)·(A+C) 图59和图510为分配律等效图。 图59分配律等效图1 图510分配律等效图2 互补律: A·=0 A+=1 图511和图512为互补律等效图。 图511互补律等效图1 图512互补律等效图2 重叠律: A·A=A A+A=A 图513和图514为重叠律等效图。 图513重叠律等效图1 图514重叠律等效图2 反演律: A·B=+ A+B=· 图515和图516为反演律等效图。 图515反演律等效图1 图516反演律等效图2 对合律: =A 图517为对合律等效图。 图517对合律等效图 2. 基本规则 1) 代入规则 一个包含变量A的逻辑等式中,如果把A换成另一个逻辑式,则等式仍成立。这就是代入规则。 例如前面提到的反演律: A·B=+和A+B=·。 把A·B=+式中的B换成B·C,等式也成立。 A·(B·C)=+B·C=++ 把A+B=·中的B换成B+C,等式也成立。 A+(B+C)=·(B+C)=·· 利用代入规则可以推导出更多的公式。 以上就是利用代入规则推导公式: A·B·C=++ A+B+C=·· 2) 反演规则 一个逻辑等式Y中,如果把式中的“·”换成“+”,“+”换成“·”;“1”换成“0”,“0”换成“1”,则得到反函数。这就是反演规则。 例如求Y=AB(C+DE)+C的反函数,根据反演规则: =【++·(+E)】·(B+) 利用反演规则注意如下: (1) 利用反演规则求得的反函数和用反演律求得的反函数一致。 例如Y=A+B 利用反演规则,求得=(+B)(A+)=+AB 利用反演律,求得=A+B,求得=A·B=+BA+=+AB (2) 在求反符号下有两个以上变量时,求反符号应该保持不变。 例如Y=ACD,则=+B++ 5.6常用公式 表53和表54列出了有关逻辑代数常用的基本公式和一些常用公式。 表53逻辑代数常用的基本公式 序号 公式 序号 公式 1 0×A=0 10 0+A=A 2 1×A=A 11 1+A=1 3 A×A=A 12 A+A=A 4 A×A=0 13 A+=1 5 A×B=B×A 14 A+B=B+A 6 (A×B)×C=A×(B×C) 15 (A+B)+C= A+(B+C) 7 A×(B+C)= A×B+A×C 16 A+(B×C)=(A+B)×(A+C) 8 A×B=+ 17 A+B=× 9 A=A 18 表54逻辑代数的其他常用公式 序号 公式 1 A+A×B= A 2 A+×B= A+B 3 A×B+A×=A 4 A×(A+B)=A 5 A×B+×C+B×C= A×B+×C A×B+×C+B×C×D= A×B+×C 6 A×A×B= A× ×A×B= 5.7基本逻辑电路的类型 逻辑电路根据控制逻辑的特点可分为组合电路和时序电路。 1. 组合电路 组合电路的控制结果只和输入变量的状态有关,如图518所示的控制电路均为组合电路。 图518中间逻辑变量的消除 由于组合电路的控制结果只和输入变量的状态有关,所以可以用布尔代数(也称开关代数或逻辑代数)通过计算而得出。 组合电路是由输入变量、中间逻辑变量和输出逻辑变量三者构成的,但不含记忆元件。由于组合电路的输出只和输入有关,所以中间逻辑变量也可以根据逻辑关系将其消除。 如图518(a)所示,写出梯形图的逻辑关系表达式。 C=AB H=D 将C=AB代入H=D得: H=D=ABD=(+)D 根据上式画出梯形图如图518(b)所示。由上式可知,输出变量H只和A、B、D有关,与输出变量H无关,所以是组合电路。 每个输入变量都有0和1两种状态(0表示原始状态,1表示动作状态),N个输入变量则有2N种状态,可以用N位二进制数来表示。 2. 时序电路 时序电路也称记忆电路,其中包含记忆元件。时序电路的控制结果不仅和输入变量的状态有关,也和记忆元件的状态有关。由于中间逻辑元件和输出执行元件中有记忆元件,所以,时序电路的控制结果和输入变量、中间逻辑变量和输出逻辑变量三者都有关系。时序电路的逻辑关系比较复杂,目前主要用经验法来设计。 继电器、接触器是最基本的记忆元件,在电气控制电路中,绝大多数为记忆电路,记忆电路主要用于对短时通断信号(如按钮、位置开关等)的记忆, 图519时序电路 常用于各种电动机的起动停止控制,电气控制电路中的自锁电路就是一种记忆电路,如图519所示。 写出梯形图的逻辑关系表达式。 Y0=(X0+Y0)X1 由梯形图和逻辑关系表达式可知,输出变量Y0不仅和输入变量X0、X1有关,还与输出变量Y0有关。所以这是一个时序电路(记忆电路)。 布尔代数适用于组合电路的逻辑运算。也可以用于时序电路中的局部电路。 5.8PLC组合电路的设计方法 利用布尔代数可以进行PLC梯形图的设计。 下面通过例子说明PLC梯形图设计的方法和步骤。 例5.1楼梯走廊灯控制。 在楼梯走廊里,楼上楼下各安装一个开关来控制一盏灯,试画出控制电路。 表55例5.1真值表 输入状态 输出结果 X2X1 Y0 000 011 101 110 根据题意分析可知,两个开关只有其中一个开关动作时灯亮,两个开关都动作或都不动作时灯不亮。 (1) 根据题意列出真值表,两个开关只有4种输入状态,如表55所示。 设开关1输入端为X1,开关2输入端为X2,输出端灯为Y0。 当两个开关都不动作时,X1=0,X2=0,灯不亮,Y0=0。 当开关1动作时,X1=1,开关2不动作时,X2=0,灯亮,Y0=1。 当开关1不动作时,X1=0,开关2动作时,X2=1,灯亮,Y0=1。 当两个开关都动作时,X1=1,X2=1,灯不亮,Y0=0。 (2) 根据真值表写出逻辑表达式。 Y0=X1X2+X1X2=X1X2 (3) 化简逻辑表达式。这个逻辑表达式已经是最简单的,就不需要化简。 (4) 根据逻辑表达式Y0=X1X2+X1X2画出控制梯形图,如图520所示。 图520两个开关控制一盏灯控制梯形图 例5.2用两个开关控制一个七段数码管显示。 用两个开关控制一个七段数码管显示1、2、3、4,试画出控制电路。 (1) 确定七段数码管显示1、2、3、4的笔画如图521所示。 图521七段数码管显示1、2、3、4的笔画 (2) 两个开关有4种状态,每个状态显示一个数字,据此列出真值表,如表56所示。 表56七段数码管显示的真值表 开关 S2 S1 显示数字 七段数码管笔画 a b c d e f g 0 0 1 0 0 0 0 1 1 0 0 1 2 1 1 0 1 1 0 1 1 1 3 1 1 1 1 0 0 1 1 0 4 0 1 1 0 0 1 1 (3) 根据真值表写出各笔画的逻辑表达式,并化简。 七段数码管各段笔画的逻辑表达式分别如下: a = d =S2S1+S2S1=S2+S2S1=S1 b = g = S1+S2 c = S2 e = S2 f =S1 (4) 根据逻辑表达式画出控制电路,如图522所示。 图522七段数码管控制电路 说明: 为了使电路简单,这里采取了两项措施: ①数码管的“1”使用了笔画f、e而不是笔画b、c。②真值表中的S2、S1的值不是按二进制数00、01、10、11的顺序排列,而是按00、01、11、10的顺序排列。 例5.3用PLC控制4组彩灯。 用PLC控制4组彩灯,要求每隔1s变化1次,每次亮2组彩灯,按图523(a)所示的时序图反复变化。4组彩灯分别由Y0~Y3控制。 (1) 根据控制要求,列出Y0~Y3所对应的真值表,如表57所示。 表57输出控制状态真值表 当前值 由K1M0表示C0当前值 输 出 控 制 C0 M3 M2 M1 M0 Y3 Y2 Y1 Y0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 2 0 0 1 0 1 1 0 0 3 0 0 1 1 1 0 0 1 (2) 由表57所示的真值表可写出如下逻辑表达式。 在真值表中,当M1 M0=00时Y0=1,M1 M0=11时Y0=1。据此写出Y0逻辑表达式: Y0=M0M1+M0M1 同理,写出Y1、Y2、Y3的逻辑表达式: Y1=M1 Y2=M0M1+M0M1=Y0 Y3=M1=Y1 (3) 梯形图设计。 设计一个循环计数器(参考图124),用计数器C0对M8013(1s时钟脉冲)计数,M8013每变化4次(4s)为1个周期,C0的计数值为0、1、2、3,并依次循环。由计数器的当前值控制Y0~Y3的状态。 为了取得计数器的当前值,可用MOV指令将计数器的当前值传送到K1M0中,用K1M0表示计数器的当前值。由K1M0表示C0当前值,再由K1M0来控制Y0~Y3的状态。 由逻辑表达式可以画出Y0~Y3的梯形图,如图523(b)所示。 图5234组彩灯控制 以上例子比较简单只需3步,对于比较复杂的例子,根据真值表写出的逻辑表达式通常需要化简,下面介绍逻辑代数和卡诺图两种常用的化简方法。 5.9逻辑代数化简法 一个逻辑表达式可以有多种表达方式。例如: Y=AC+D与或表达式 =A+(C+D)或与表达式 =AC·D与非与非表达式 =A++(C+D)或非或非表达式 =C+与或非表达式 因为与或表达式是比较常见的,同时与或表达式比较容易同其他形式的表达式相互转换,本节所谓化简,一般是指化为最简的与或表达式。 常用的逻辑代数化简法如下: 1. 并项法 利用A+=1的公式,将两项合并成一项,并消除一个变量。如: Y=C+=(C+)= 2. 吸收法 利用A+AB=A的公式,消除多余的变量。如: Y=B+BCD(E+F)==B 3. 消去法 利用A+B=A+B的公式,消除多余变量。如: Y=AB+C+C=AB++C=AB+ABC=AB+C 4. 配项法 利用B=B(A+)将(A+)与某乘积项相乘,再展开,消除多余项。如: Y=AB++B =AB++(A+)B =AB++(AB+B) =AB(1+)+(1+B) =AB+ 例5.4化简如图524(a) 所示的电路。 根据电路如图524(a)所示写出逻辑表达式: Y=BC+AC 化简,可得: Y=BC+AC =(B+A)C=(B+A)C 根据化简逻辑表达式画出电路,如图524(b)所示。 图524例5.4的电路 例5.5化简如图525所示梯形图。 根据图525所示梯形图写出逻辑表达式并化简。 Y0=(X0+M0)+(X0+M0) = X0 X0+X0M0+M0X0+M0M0(式中X0 X0= X0,M0M0=0) = X0+X0M0+M0X0 +0 = X0(1+M0+M0)(式中1+M0+M0=1) = X0 根据化简结果画出梯形图(如图526所示)。 图525梯形图 图526梯形图 5.10卡诺图化简法 卡诺图是美国工程师Karnaugh于20世纪50年代提出的。用卡诺图可以表示和化简逻辑表达式。首先介绍最小项和最大项的概念以及卡诺图的构成,其次介绍如何用卡诺图表达逻辑表达式、真值表、表达式之间的转换。最后介绍用卡诺图化简逻辑表达式。 我们知道,一个开关变量A有两种状态,接通为A=1,断开为A=0。 两个开关变量A和B有四种状态,A=0,B=0,写作AB=00; A=0,B=1,写作AB=01; A=1,B=0,写作AB=10; A=1,B=1,写作AB=11。三个开关变量A、B和C有八种状态。 可见n个开关变量有2n种状态。例如4个开关(n=4)有24=16种状态。 n个开关变量的2n种状态可以用2n个n位二进制数表示。 如三个开关A、B、C的状态可以用八种3位二进制数表示。如表58所示。 例如二进制数011表示ABC=011,就是A=0,B=1,C=1。 1. 逻辑表达式的最小项概念 在介绍卡诺图之前,先介绍最小项的概念。 例如有三个逻辑变量A、B、C,可以有8个最小项,分别是、 C、 B 、B C、A 、A C、A B 、A B C,如表58所示。 表58三个逻辑变量A、B、C最小项编号 最小项 使最小项为1的变量取值 ABC 对应的十进制数 编号 0000m0 C0011m1 B 0102m2 B C0113m3 A 1004m4 A C1015m5 A B 1106m6 A B C1117m7 最小项的性质如下: (1) 任何一个最小项只有一个取值使它为1,例如当ABC=011时,B C=01 1= 1。 (2) 全体最小项之和为1。 (3) 任意两个最小项之乘积为0。例如B C×A B = ABBC=0。 (4) 相邻两个最小项之和可以合并成一项,并消去一对因子。例如在4变量卡诺图中m7(CBA)和m 15(DCBA)相邻,CBA+DCBA=+D=CBA。 2. 逻辑表达式的最大项概念 在有n个变量逻辑表达式中,n个变量(原变量或反变量)之和称为最大项。 例如三个变量A、B、C有8个(2n)最大项: (++)、(++C)( + B + 、)、(+B + C)、(A + +)、(A + +C)、(A + B + )、(A + B + C),如表59所示。 表59三个逻辑变量A、B、C最大项编号 最大项 使最大项为0的变量取值 ABC 对应的十进制数 编号 A + B + C0000M0 A + B +0011M1 A + +C0102M2 A + +0113M3 +B + C1004M4 + B + 1015M5 + +C1106M6 ++1117M7 最大项的性质如下: (1) 在输入变量的任意取值下必有一个最大值,而且只有一个最大项的值为0。 (2) 全体最大值之积为0。 (3) 任意两个最大项的和为1。 (4) 只有一个变量不同的两个最大项的乘积等于各相同变量之和。 对比表58和表59可知最小项和最大项存在如下关系: Mi= mi 例如m0=,m0= = A + B + C=M0。 3. 卡诺图的构成 1) 1变量卡诺图 1个变量A有2个最小项: 、A。1个变量卡诺图只有2个小方格,如图527所示。 图5271变量A卡诺图 2) 2变量卡诺图 2个变量B、A有4个最小项: 、A、BA、B。2个变量卡诺图只有4个小方格,如图528所示。2变量卡诺图相当于两个折叠的1变量卡诺图,如图528(a)所示,向右展开的4个小方格。再加入变量B,如图528(b)所示。 也可以将1变量卡诺图如图528(c)所示向下展开,加入变量B,变成如图528(d)所示的2变量卡诺图。图528(d)左边的0表示B=0,1表示B=1。上边的0表示A=0,1表示A=1。方格中的01表示最小项为m1=A,10表示最小项为m2=B等。 图5282变量卡BA卡诺图 3) 3变量卡诺图 3个变量C、B、A有8个最小项: 、A、BA、B、C、CA、CBA、CB。3个变量卡诺图有8个小方格,如图529所示。2变量卡诺图相当于两个折叠的2变量卡诺图,如图528(b)所示,向下展开成的8个小方格。再加入变量C,如图529(a)所示。 也可以将2变量卡诺图如图528(c)向右展开,变成如图529(b)所示的3变量卡诺图。图529(b)左边的00表示CB=00,01表示CB=01等。上边的0表示A=0,1表示A=1。 方格中的101表示最小项为m5=CA,110表示最小项为m6=CB等。 图5293变量CBA卡诺图 4) 4变量卡诺图 如图530(a)所示的4变量卡诺图是由3变量CBA卡诺图529(a)向下反转的4变量D、C、B、A的最小项卡诺图。 当然,4变量卡诺图也可以由3变量CBA卡诺图529(b)向右反转成为4变量D、C、B、A的最小项卡诺图。请读者自己画画看。 图5304变量DCBA的最小项卡诺图 5) 5变量卡诺图 如图531所示的5变量卡诺图是由4变量DCBA卡诺图530(a)向右反转的5变量D、C、E、B、A的最小项卡诺图。 图5315变量DCEBA的最小项卡诺图 6) 卡诺图的特点 通过卡诺图可以直接观察相邻项,对应一个小方格的上下左右的变量只有一个因子有变化。这是卡诺图用于化简的基本依据。 现以4变量卡诺图为例,观察m3对应的BA,左边为A,只有B有变化,、、A没有变化,右边为B,只有A有变化,下边为CBA,只有C有变化。m3的上面好像没有,其实最上面和最下面也是相邻的,就是m3和m11也是相邻的,m11为DBA只有D是变化的。 同理,最左面和最右面也是相邻的。 例如在4变量卡诺图中,每一个小方格都有上下左右的相邻项。例如m2的4个相邻项分别为m0、m3、m6、m10。 对于5变量卡诺图来说,有5个相邻项。在垂直中心线两边相当于两个4变量卡诺图。这两个4变量卡诺图的相邻关系对于5变量卡诺图来说也适用,例如m4和m6相邻,m18和m16相邻。 注意: 对称于垂直中心线两边的方格也是相邻项。例如m3和m9是相邻项,m5和m21是相邻项等。 在4变量卡诺图中,m3的4个相邻项分别为m1、m2、m7、m11。在5变量卡诺图中,m3的相邻项除了m1、m2、m7、m11,对称于中线的m19也是m3的相邻项。 5变量以上的卡诺图,直接识别相邻项比较困难,故引用较少。 4. 用卡诺图表示逻辑表达式 任何一个逻辑表达式都可以表示成最小项表达式的形式,所以可以用卡诺图表示逻辑表达式。具体分析如下。 在例5.1中的Y0=X1X2+X1X2, 式中有两个最小项X1X2和X1X2。 在2变量X1、X2卡诺图,如图532(a)所示,在X1X2的方格中填入1,在X1X2的方格中填入1,其他方格中填入0,如图532(b)所示。这就是逻辑表达式Y0=X1X2+X1X2的卡诺图。 图532表示逻辑表达式的卡诺图 由上可知,以最小项表达式表示逻辑表达式,只要在卡诺图对应的最小项填入1即可。 5. 非最小项的处理 如果逻辑表达式是非最小项该如何处理? 例如,逻辑表达式Y=AB+A,有3个变量,AB和A都不是最小项。 AB在卡诺图的位置: 找出即是A行又是B列的方格中填入1,如图533(a)所示。 A在卡诺图的位置: 找出即是A行又是列的方格中填入1,如图533(b)所示。 将图533(a)和图533(b)合并在一起就是Y=AB+A的卡诺图,如图533(c)所示。 图533非最小项的处理 也可以先把表达式Y变换成最小项逻辑表达式,即: Y=AB+A==ABC+AB+A,在卡诺图中的相应最小项位置填上1。 6. 用卡诺图进行化简 例5.6化简逻辑表达式。 化简逻辑表达式Y=ABC+ AB + AC+ BC。 在卡诺图中,将对应4个最小项方格中填入1。将相邻的两个(1)圈起来。共组成3个圈,根据这3个圈,可得: Y=AB+ BC+CA 如图534所示。 图534Y=ABC+ AB + AC+ BC化简卡诺图 例5.7化简逻辑表达式。 化简逻辑表达式Y=ABC+ AB + AC+ BC+ C+ A。 用卡诺图表示逻辑表达式Y,如图535所示。 图535Y=ABC+ AB + AC+ BC+ C+ A 化简卡诺图 将取值为1的相邻项圈成两个圈,如图535(a)所示得出: Y=A+C 也可以将取值为0的相邻项圈成1个圈,如图535(b)所示得出Y的反变量: = Y==A+C 例5.8化简逻辑表达式。 化简逻辑表达式Y= + C+A + C+ AC。 用卡诺图表示逻辑表达式Y,如图536所示。 图536Y= + C+A + C+ AC化简卡诺图 化简卡诺图的步骤如下: (1) 如图536(a)所示,如果将上面两个1圈起来,将下面两个1圈起来可得: Y= +A =( +A) = 。 (2) 如图536(a)所示,如果将4个1圈在一起可直接得: Y= 。 (3) 如图536(b)所示,如果将图中的0圈成两个大圈,可得: = B+D Y=B+D=B+D= 。 7. 卡诺图在梯形图设计中的应用 下面通过实例,介绍卡诺图在梯形图设计中的应用。 例5.9用一个按钮控制PLC七段数码管显示数字。 用一个按钮控制PLC,用七段数码管显示数字1、2、3、4、5,如图537所示。 图537七段数码管显示数字 1) PLC梯形图设计 PLC梯形图如图538 所示,这是一个用按钮X0控制PLC七段数码管显示数字1、2、3、4、5的梯形图。 图538七段数码管显示梯形图 2) 控制原理如下 初始状态K1M0=0,按一下按钮X0,执行加一指令INCP K1M0,K1M0=1,再按一下按钮X0,K1M0=2,每按一下按钮X0,K1M0加一次1,按到第6次时,K1M0=6=01102,这时M2=1,M1=1。M2和M1接点接通,执行ZRST M0 M3指令,将K1M0清零。 下面的梯形图是由K1M0的计数值控制数码管显示1~5。 3) 七段数码管显示梯形图设计 根据七段数码管显示的控制要求,列出K1M0数值对应如图537 所示七段码的笔画,如表510所示的真值表(其中M3用不到)。 表510七段码笔画真值表 输入(由X0控制) M2 M1 M0 数字 输出(七段数码管) Y6 g Y5 f Y4 e Y3 d Y2 c Y1 b Y0 a 0 0 0 0 0 0 1 1 1 1 0 1 0 2 1 1 1 1 1 0 1 1 3 1 1 1 1 1 1 0 0 4 1 1 1 1 1 0 1 5 1 1 1 1 1 下面由真值表画出七段码管的各段笔画。 (1) 根据七段码管笔画a笔画真值表画出笔画a的卡诺图。 观察真值表,对应Y0=1的最小项有三个: m2、m3、m5。在这3个方格中填入1,如图539所示,将相邻的最小项合并,得出a笔画Y0的逻辑表达式: Y0=M1M2+M0M1M2 图539a笔画卡诺图及化简 (2) 根据七段码笔画b笔画真值表画出笔画b的卡诺图,如540图所示,将相邻的最小项合并,得出b笔画Y1的逻辑表达式: Y1=M1M2+M0M2+M0M1M2=(M1+M0)M2+M0M1M2 (3) 根据七段码笔画c笔画真值表画出笔画c的卡诺图,如图541所示,将相邻的最小项合并,得出c笔画Y2的逻辑表达式: Y2=M0M2+M1M2 图540b笔画卡诺图及化简 图541c笔画卡诺图及化简 (4) 由真值表可知a笔画和d笔画相同,所以Y3= Y0。 (5) 由真值表可直接看出笔画e,Y4=M2M1M0。 (6) 同上述方法得出: Y5=M2M1+M2M1M0 Y6=M2M1+M2M1M0 (7) 根据以上逻辑表达式可以画出PLC的梯形图如图542(a)所示,PLC接线图如图542(b)所示。 由于Y3= Y0,可以用Y3同时控制a笔画和d笔画,Y0另做它用。 8. 卡诺图的无关项 前面提到n个变量有2n个变量。如3个变量有8个最小项,用卡诺图表示就有8个方格。如例5.9中M2、M1、M0的卡诺图表示就有8个方格。但是在真值表中只有最小项m0~m5,而m6和m7是不存在的。这个不存在最小项称为无关项。 在卡诺图中,无关项用×来表示。无关项既可以是1也可以是0,这样在化简中既可以把它当作0来用,也可以当作1来用,所得的结果也就更加简单了。 图542七段数码管梯形图及PLC接线图 仍以例5.9为例,在没有加无关项时,a笔画Y0的逻辑表达式: Y0=M1M2+M0M1M2 加上无关项后,卡诺图如图543(a)所示,化简后的a笔画Y0的逻辑表达式为: Y0=M0 M2+M1 图543七段数码管无关项卡诺图化简 同理,由图543(b)~图543(f)可得: 笔画b: Y1=M0M2+M2M0+M1 笔画c: Y2= M0 +M2 笔画d: Y3=Y0 笔画e: Y4=M1M0。 笔画f: Y5=M2+M1M0 笔画g: Y6=M2+M1M0 可见,加了无关项卡,卡诺图化简的逻辑表达式更简单。 对应于加上无关项卡诺图化简出的逻辑表达式画出对应的七段码笔画梯形图如图544 (a)所示。 可见,图544(a)要比图542 (a)对应的梯形图简单。 按钮控制七段数码管总梯形图如图544(b)所示。 图544PLC控制七段数码管PLC梯形图 例5.10用PLC控制一个 5人表决器。 用PLC控制一个 5人表决器,当两人以上者同意红灯亮,当两人及以下者同意绿灯亮。 我们知道,5个变量有25=32个变量,如用真值表比较麻烦。可以直接画出5变量卡诺图如图545所示。 根据题意,把5位二进制数中有3~5个1的最小项方框中填上1,如第一行,在00111方格中填1,如第二行,在01011(01行,011列)方格中填1等。 为了看得清楚,先把卡诺图右边相邻的1圈起来,如图545(a)所示。 再把卡诺图左边相邻的1圈起来,如图545(b)所示。注意: 5变量卡诺图左右对称的框是相邻的。 图5455人表决器卡诺图 由图545(a)得: Y0(a)= X0X1X2+X3X4X2+X0X4X2+X1X4X2+X0X3X2+X1X3X2 =(X0X1+X3X4+X0X4+X1X4+X0X2+X1X3)X2 =(X0X1+(X3+X0+X1)X4+(X0+X1)X3)X2 由图545(b)得: Y0(b)=X1X3X4+X0X3X4+X0X1X4+X0X1X3 =(X1+X0)X3X4+(X4+X3)X0X1 由图545(a)和图545(b)合并得: Y0 = (X0X1+(X3+X0+X1)X4+(X0+X1)X3)X2+(X1+X0)X3X4+(X4+X3)X0X1 由上述Y0逻辑表达式画出梯形图如图546所示。很明显Y1=Y0。 图5465人表决接线图和梯形图1 图546所示梯形图是一个组合电路,不能记忆结果。当裁判松开按钮后结果就变了。并且在未表决之前,X0~X4均为0,绿灯是亮的。为了改变这一现象,可改为图547所示的梯形图。每个按钮控制一个ALTP交替指令,按一次按钮由0变1,再按一次按钮由1变0,变为一个记忆电路。 初始状态,常开接点M5断开Y0和Y1线圈,灯不亮。5个裁判按按钮进行表决,其结果记忆在M0~M4中。按下按钮X5,M5=1,接通Y0和Y1线圈,显示结果。结束后用再按下按钮X5,M5=0,断开Y0和Y1线圈,同时M5下降沿接点使M0~M4复位。 图5475人表决梯形图2 习题 1. 主令元件和检测元件有什么不同? 2. 设计用3个开关都可以控制一盏灯,只有当两个开关闭合时灯才亮的梯形图。 3. 4个开关的闭合与断开有几种组合?用二进制数表示。 4. 设计用3个开关都可以控制一盏灯的梯形图。 5. 化简逻辑表达式Y=AB+ C+ C。 6. 化简逻辑表达式Y=AB+C+ BC。 7. 什么是组合电路?什么是时序电路? 8. 题图1所示的梯形图哪些是组合电路?哪些是时序电路? 题图14个梯形图 9. 证明题图2两个梯形图相同。 题图2两个梯形图 10. 化简题图3梯形图的接点。 题图3化简梯形图接点