由于梯形图是一种程序表示的形式,并非由硬件构成的控制电路,因此在画梯形图时,应注意和普通控制电路的不同之处,PLC编程时应该遵循以下基本原则:
(1)、外部输入/输出继电器、内部继电器、定时器、计数器等软器件的逻辑触点可以多次重复使用,无需用复杂的程序结构来减少触点的使用次数。
(2)、梯形图的每一行都是从左母线开始,线圈接在*右边。触点不能放在线圈的右边,而在继电接触器控制电路中,触点可以加在线圈的右边,这在PLC的梯形图中是不允许的。如图1(a)表示。从图中不难看出编程者的意图是,当触点0.00、0.01、0.02都闭合时,线圈10.00被驱动得电。但在梯形图中由于触点不能与右母线相连,因此将图1(a)转换成图1(b)所示格式,既满足了程序的上述功能,又符合梯形图的编程规则。
图1 线圈未与右母线(或触点与右母线)相连情况的转换
说明:(a)不符合编程规格的梯形图;(b)符合编程规格的梯形图
(3)、线圈不能直接与左母线相连。由图2(a)不难看出编程者的意图是,使程序一运行10.00、10.01线圈即被驱动。要达到这样的目的,可以使用一个程序中未被调用的内部继电器(如200.00)的常闭触点或者特殊继电器253.15(常通继电器)的常开触点来驱动它们,既满足了编程者的功能要求,又不违背梯形图编程规则,如图2(b)所示。
图2 线圈直接与左母线相连情况的转换
说明:(a)不符合编程规格的梯形图;(b)符合编程规格的梯形图
(4)、同一编号的线圈在同一个主程序中连续使用两次称为同名双线圈输出。同名双线圈输出容易引起输出结果的不确定,编制程序时应尽量避免同名双线圈输出的情况,如何避免同名双线圈输出可以参考图3所示的方案。
图3 同名双线圈输出及其解决方案
说明:(a)原梯形图;(b)运行效果;
在梯形图程序中一般应尽量避免同名双线圈输出,因为这样会造成输出结果的不确定,如图(a)所示为同名双线圈输出梯形图。在编程语法上,该梯形图并不违反规定,但在实际运行过程中,其结果有时会和编程者的期望大相径庭。不难看出(a)图中编程者的意图是,当支路1中的触点0.00、0.01都闭合时、或支路2中的触点0.02、0.03都闭合时、或两条支路中的所有触点都闭合时,线圈10.00都能被驱动。但在实际执行中,当触点支路1中的触点0.00、0.01闭合,而支路2中的触点0.02、0.03断开时,线圈10.00并不得电,结果如图(b)所示。这是因为PLC采用循环扫描的处理方式。在输入采样后,中央处理器对梯形图自上而下进行运算。在运算*阶电路时,线圈10.00是被驱动得电的,但运算到第二阶电路时,线圈10.00因触点0.02、0.03断开而不被驱动。在I/O刷新时,以*的运算结果为准进行输出,因而此时的线圈10.00是失电状态的。
(5)、梯形图程序必须符合顺序执行的原则,即从左到右,从上到下地顺序执行,如不符合顺序执行原则的梯形图程序是无法输入编程软件的。如图4(a)所示的桥式结构的梯形图,不难看出程序设计者的意图是,当支路l的所有触点均闭合、或支路2的所有触点均闭合、或支路3的所有触点均闭合、或支路4的所有触点均闭合时,线圈10.00被驱动得电。但此类梯形图由于不符合编程规则而无法输入编程软件或手持编程器,应将图4(a)转换成图4(b)所示,才能利用编程软件或手持编程器写入PLC存储器中。
图4 桥式电路的转换
说明:(a)桥式电路图;(b)转换后的梯形图
(6)梯形图中串联、并联触点使用的次数没有限制,可无限次地使用,如图5所示。
图5 触点的无限使用
(7)同一程序中两个或两个以上不同编号的线圈可以并联输出,如图6所示。

RELIANCE
0-57549-B
RELIANCE
0-57554
RELIANCE
0-57625-D
RELIANCE
0-57626-D
RELIANCE
0-58201
RELIANCE
0-58201-1
RELIANCE
0-58202
RELIANCE
0-58500
RELIANCE
0-58501
RELIANCE
0-58501-1
RELIANCE
0-58502
RELIANCE
0-58502-1
RELIANCE
0-58502-2
RELIANCE
0-58502-3
RELIANCE
0-58503-1
RELIANCE
0-58503-1S
RELIANCE
0-58503-R
RELIANCE
0-58504
RELIANCE
0-58703-61
RELIANCE
0-58703-61A
RELIANCE
0-58703-70A
RELIANCE
0-58704
RELIANCE
0-58704-1
RELIANCE
0-58704-1D
RELIANCE
0-58705
RELIANCE
0-58706-1
RELIANCE
0-58706-16B
RELIANCE
0-58706-18
RELIANCE
0-58706-21
RELIANCE
0-58706-22
RELIANCE
0-58706-23
RELIANCE
0-58706-3
RELIANCE
0-58706-32
RELIANCE
0-58706-33
RELIANCE
0-58706-33C
RELIANCE
0-58706-40
RELIANCE
0-58706-41
RELIANCE
0-58706-42
RELIANCE
0-58706-43
RELIANCE
0-58718
RELIANCE
0-58718-C
RELIANCE
0-58719
RELIANCE
0-58719-30A
RELIANCE
0-58719-32
RELIANCE
0-58719-32A
RELIANCE
0-58719-42
RELIANCE
0-58724-70A
RELIANCE
0-58770/58771
RELIANCE
0-58770-110BB
RELIANCE
0-58770-202BC
RELIANCE
0-58770-310
RELIANCE
0-58770-310AA
RELIANCE
0-58770-310AC
RELIANCE
0-58770-310AD
RELIANCE
0-58770-310BA
RELIANCE
0-58770-411
RELIANCE
0-58770-420
RELIANCE
0-58770-430
RELIANCE
0-58771-02
RELIANCE
0-58771-03
RELIANCE
0-58771-04
RELIANCE
0-58771-05
RELIANCE
0-58771-E
RELIANCE
0-58771-F
RELIANCE
0-58772-110AA
RELIANCE
0-58772-310
RELIANCE
0-58773
RELIANCE
0-58773-1
RELIANCE
0-58773-B
RELIANCE
0-58774-103AA
RELIANCE
0-58775-03
RELIANCE
0-58775-A
RELIANCE
0-58777
RELIANCE
0-59007-RK
RELIANCE
0-60000-2A
RELIANCE
0-60000-D
RELIANCE
0-60000-E
RELIANCE
0-60001-1
RELIANCE
0-60001-F
RELIANCE
0-60002-2
RELIANCE
0-60002-3
RELIANCE
0-60002-5
RELIANCE
0-60002-5A
RELIANCE
0-60002-6