卡诺绘图辅助工业控制

工业PLC程序员面临许多问题。其中:减少扫描时间,降低plc的使用成本;消除梯子逻辑梯级中的“bug”;减少了老梯子逻辑的维护成本。卡诺地图可以帮助解决所有这些问题。卡诺映射是应用布尔代数来简化复杂数字问题的一种系统的、图形化的方法。

通过Lyle R. Hurst, ITT技术研究所和Gary Mintchell,高级编辑 2000年1月1日

工业PLC程序员面临许多问题。其中:减少扫描时间,降低plc的使用成本;消除梯子逻辑梯级中的“bug”;减少了老梯子逻辑的维护成本。

卡诺地图可以帮助解决所有这些问题。卡诺映射是应用布尔代数来简化复杂数字问题的一种系统的、图形化的方法。

卡诺映射的一个例子可以从写一个关于野餐条件的有组织的陈述开始。在这种情况下,选项是Sunday and Clear and Calm或Sunday and Clear and Windy。对逻辑的常识性分析表明,风是否刮并不重要,因此野餐语句变成了Sunday and Clear,一个简单得多的语句(见图表)。

阶梯逻辑中的野餐语句是这样的:

正如阶梯逻辑所示,无论平静或不平静,野餐梯级都是启用的,因此梯级可以写成更简单的形式,从而减少扫描时间:

更复杂的程序需要更系统的分析方法。布尔代数的原理符合这个要求。

第一步是做一个清晰的问题陈述。下一步是构造一个真值表。真值表使用问题的所有变量的所有组合——星期几、云量和风条件。

野餐问题的真值表示例包括二进制形式的数字表示,这使得真值表更易于操作。

A =一周中的一天 1 =星期天 0 =其他
云量 1 =无 0 =多云
C =风力条件 1 =冷静 0 =多风
4 2 1
一个 B C 野餐
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3. 0 1 1 0
4 1 0 0 0
5 1 0 0 0
6 1 1 0 1
7 1 1 1 1

真值表中每个变量都有一列。当变量数为n时,真值表有2的n次方行。

下一步是构造卡诺(K)图。K映射是正方形或矩形,比例为2到1,包含2的n次方个正方形——真值表的每一行一个正方形。野餐问题的三变量映射是矩形的,有八个正方形——一个代表真值表的每一行。

方格的编号与真值表上的行数相同。但是,有一种方法可以进行编号,使得由数字表示的行在相邻的正方形中只变化一个变量。这样,相邻的方块表示可以被移除的变量。

下面是一个典型的三变量映射:

_
C

C
0

000

1

001

2

010

3.

011

6

110

7

111

4

One hundred.

5

101

现在,野餐的真值表可以映射到三个变量的K映射上。真值表上的行数与K映射中的平方数完全对应。对于真值表上的行,每个正方形也有一个三位数的二进制数。注意相邻的方格只相差1位。结果数字以粗体表示。

_
C
C
0 0
000
0 1
001
0 2
010
0 3.
011
1 6
110
1 7
111
0 4
One hundred.
0 5
101

阶梯逻辑的两条路径由真值表上的第6行和第7行表示。它们出现在K映射上相邻的方格中表明了阶(逻辑)约简的条件。整个梯级由A和B(第一个和第二个位)表示,而C位是多余的。因此,如果A和B是真的,那么我们就去野餐!这和我们用常识得到的结果是一样的。

K映射是可行的,但常识不是更快吗?对于这个级别的问题,是的。然而,我们正在为使用和建立设计方法来解决更具挑战性的问题奠定基础。

早在计算机和集成电路出现的早期——在分立元件出现之后,微处理器出现之前——计算机集成电路是用位片算术逻辑单元构建的。假设我们有一个简单的PLC,没有数学指令,我们需要添加两个8位数字。我们是花5000美元买一个功能强大的PLC,还是有一些技术可以用来省钱?

该规范要求使用位片加法器。一个切片的真值表是这样的:

一个 B C 执行 总和
0 0 0 0 0 0
1 0 0 1 0 1
2 0 1 0 0 1
3. 0 1 1 1 0
4 1 0 0 0 1
5 1 0 1 1 0
6 1 1 0 1 1
7 1 1 1 1 1

对于这个问题,需要两个三变量映射,一个用于Carry,一个用于Sum。

执行

总和
_
C

C
_
C

C
0

000

1

001

_
一个
0

000

1 1
001
2

010

1 3.
011
_
一个
1 2
010
3.

011

1 6
110
7

111

一个

6

110

1 7
111
4

One hundred.

6

110


一个
1 4
One hundred.
6

110

写出每一对相邻的2的布尔方程。

AC+BC+AB = Co

这个不能化简,所以每个都有一个布尔项。

_ _
ABC+ABC+ABC+ABC = Sum

这个方程的梯形逻辑是这样的:

把它们放在一起——一个8位加法器

维护遵循与设计基本相同的方法,除了必须从旧阶构造真值表。阶梯:传统设计的阶梯,如:

会有一个这样的真值表:

一个 B C D O
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3. 0 0 1 1
4 0 1 0 0
5 0 1 0 1 1
6 0 1 1 0
7 0 1 1 1 1
8 1 0 0 0
9 1 0 0 1 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1 1

然后可以维护真值表并将K映射成新的阶。

PLC逻辑最小化的下一步可能是设计梯级软件或手持梯级计算器来执行梯级最小化。如果PLC制造商决定在他们的设计包中包括这个梯级最小化软件,手持梯级计算器将很快过时。梯级最小化算法的一个特点是使用工程师最喜欢的方法进行梯级输入和优化。

祝你好运和良好的逻辑!

想了解更多信息,一本关于卡诺地图的好书是计算机逻辑设计莫里斯·马诺著,普伦蒂斯霍尔出版社,1972年。有关更完整的卡诺图讨论,请访问www.globalelove.com

作者信息
Lyle R. Hurst,电子讲师,ITT技术学院,阿诺德,密苏里,和Gary Mintchell,高级编辑,