1.29k likes | 1.4k Views
3 指令系统. PLC 程序的表达方式. 程序的编制就是用一定的编程语言把一个控制任务描述出来。 国内外 PLC 生产厂家采用的编程语言不尽相同,但程序的表达方式基本有四种: 梯形图 指令表 逻辑功能图 高级语言 绝大部分 PLC 是使用梯形图和指令表编程。. 梯形图. 梯形图是一种图形语言,它沿用了传统的继电接触器控制中的继电器触点、线圈、串并联等术语和图形符号,而且还加进了许多功能强而又使用灵活的指令,将微机的特点结合进去,使得编程容易。
E N D
PLC程序的表达方式 • 程序的编制就是用一定的编程语言把一个控制任务描述出来。 • 国内外PLC生产厂家采用的编程语言不尽相同,但程序的表达方式基本有四种: 梯形图 指令表 逻辑功能图 高级语言 绝大部分PLC是使用梯形图和指令表编程。
梯形图 • 梯形图是一种图形语言,它沿用了传统的继电接触器控制中的继电器触点、线圈、串并联等术语和图形符号,而且还加进了许多功能强而又使用灵活的指令,将微机的特点结合进去,使得编程容易。 • 梯形图比较形象、直观,世界上各生产厂家的PLC都把梯形图作为第一用户编程语言。 左母线 右母线
指令表 • 所谓指令就是用英文名称的缩写字母来表达PLC各种功能的助记符号。常用的助记符语言类似于微机中的汇编语言。由指令构成的能完成控制任务的指令组合就是指令表,每一条指令一般由指令助记符和作用器件编号两部分组成。
1)基本顺序指令(19条)以位(bit)为单位的逻辑操作1)基本顺序指令(19条)以位(bit)为单位的逻辑操作
2)基本功能指令(8条)定时器/计数器和移位寄存器指令2)基本功能指令(8条)定时器/计数器和移位寄存器指令
3)控制指令(18条) 决定程序执行的顺序和流程
一、ST、ST/ 和OT指令(start , start not, out) • (一)指令功能 • ST:常开触点与母线连接,开始一逻辑运算。 • ST/ :常闭触点与母线连接,开始一逻辑运算。 • OT:线圈驱动指令,将运算结果输出到指定继电器。 • (二)程序举例 • 梯形图程序及指令表如表3-5所示。时序图如图3-2所示。
例题解释: 1)当X0接通时,Y0接通。 2)当X1断开时,Y1接通。 (三)指令使用说明 1)初始加载指令(ST)开始逻辑运算,并且输入的接点为A类(常开)接点。 2)初始加载非指令(ST/)开始逻辑运算,并且输入的接点为B类(常闭)接点。 3)输出指令(OT)将运算结果输出到指定线圈。
二、“/ ”非指令(not) • (一)指令功能 • 指令“/ ”:将该指令处的运算结果取反。 • (二)程序举例
例题解释: • 1)当X0和X1都接通时,Y0接通。 • 2)当X0或X1断开时,Y1接通。 • (三)指令使用说明 • “非”指令(/)将该指令处的运算结果求反。
三、AN和AN/ 指令(and, and not) • (一)指令功能 • AN:串联常开接点指令,把原来保存在结果寄存器中的逻辑操作结果与指定的继电器内容相“与”,并把这一逻辑操作结果存入结果寄存器。 • AN/ :串联常闭接点指令,把原来指定的继电器内容取反,然后与结果寄存器的内容进行逻辑“与”,并把操作结果存入结果寄存器。
(二)程序举例 例题解释: 当X0和X1都接通且X2断开时,Y0接通。
(三)指令使用说明 • 1)AN和AN/ 指令的使用 当串联常开触点(A类触点)时,使用AN指令,当串联常闭触点(B类触点)时,使用AN/ 指令,参看左图。 • 2)AN和AN/ 指令可以连续使用
四、OR和OR/ 指令(or, or not) • (一)指令功能 • OR:并联常开接点指令,把结果寄存器的内容与指定的继电器的内容进行逻辑“或”,操作结果存入结果寄存器。 • OR/ :并联常闭接点指令,把指定继电器内容取反,然后与结果寄存器的内容进行逻辑“或”,并把操作结果存入结果寄存器。
(二)程序举例 例题解释: 当X0接通或X1接通或X2断开时,Y0接通。 (三)指令使用说明 将接点并联进行“或“运算。
五、ANS 指令(块与、组与)(and stack) • (一)指令功能 ANS:实现多个指令块的“与“运算。
(二)程序举例 例题解释: 当X0或X1且X2或X3接通时,Y0接通。
(三)指令使用说明 • 1)组与指令(ANS) 用来串联指令块 2)每一指令块以初始加载指令(ST)开始。当两个或多个指令块串联时,编程下图所示。 OT
六、ORS 指令(块或、组或)(or stack) • (一)指令功能 ORS:实现多个指令块的“或”运算。
(二)程序举例 例题解释: 当X0和X1 都接通或者X2和X3都接通时,Y0接通。
(三)指令使用说明 1)组或指令(ORS)用来并联指令块 2)每一指令块以初始加载指令(ST)开始,当两个或多个指令块并联时,编程如下图所示。
七、PSHS、RDS、POPS 指令 (一)指令功能 • PSHS:存储该指令处的运算结果(推入堆栈)。(push stack) • RDS:读出由PSHS指令存储的运算结果(读出堆栈)。(read stack) • POPS:读出并清除由PSHS指令存储的运算结果(弹出堆栈)。 (pop stack)
(二)程序举例 例题解释:当X0接通时,则有: 1)存储PSHS指令处的运算结果,当X1接通时,Y0输出(为ON)。 2)由RDS指令读出存储结果,当X2接通时,Y1输出(为ON)。 3)由POPS指令读出存储结果,当X3断开时,Y2输出(为ON)。且PSHS指令存储的结果被清除。
(三)指令使用说明 • 1)PSHS:存储该指令处的运算结果,并执行下一步指令。 • 2)RDS:读出由PSHS指令存储的结果,并利用该内容,继续执行下一步指令。 • 3)POPS:读出由PSHS指令存储的结果,并利用该内容,继续执行下一步指令。且PSHS指令存储的结果被清除。 • 4)重复使用RDS指令,可多次使用同一运算结果,当使用完毕时,一定要用POPS指令,如左图所示。
八、DF和DF/ 指令 • (一)指令功能 DF:前沿微分指令,输入脉冲前沿使指定继电器接通一个扫描周期,然后复位。 DF/ :后沿微分指令,输入脉冲后沿使指定继电器接通一个扫描周期,然后又复位。
(二)程序举例 例题解释: 1)当检测到X0接通时的上升沿时,Y0仅ON一个扫描周期。 2)当检测到X1断开时的下降沿时,Y1仅ON一个扫描周期。
(三)指令使用说明 • 1)当触发信号由OFF→ON时,执行DF指令,并将输出接通一个扫描周期。 • 2)当触发信号由ON→OFF时,执行DF/ 指令,并将输出接通一个扫描周期。 • DF和DF/ 指令无使用次数限制。
(四)应用举例1 • 例1:由一持续时间较长的输入信号控制输出时,其自保持电路如图3-17所示。 a)有微分指令的程序和时序图 b) 无微分指令的程序和时序图 Y0=X1
(四)应用举例2 • 例2:用一个信号来控制电路的输出,使之在保持和释放之间交替变化,如图3-18所示。 • 图3-18 保持和释放交替变化的梯形图和时序图 • 梯形图 b)时序图 • 第1次按下X0时,Y0接通 • 第2次按下X0时,Y0断开
九、SET、RST 指令(set, reset) • (一)指令功能 SET:置1指令(置位指令),强制接点接通。 RST:置0指令(复位指令),强制接点断开。
(二)程序举例 例题解释: 当X0接通时,Y0接通并保持。当X1接通时,Y0断开并保持。
(三)指令使用说明 • 1)当触发信号X0、X2接通时,执行SET指令。不管触发信号如何变化,输出接通并保持。 • 2)当触发信号X1、X3接通时,执行RST指令。不管触发信号如何变化,输出断开并保持。 • 3)对继电器(Y和R),可以使用相同编号的SET和RST指令,次数不限,如图3-20所示。
4)当使用SET和RST指令时,输出的内容随运行过程中每一阶段的执行结果而变化。例如:当X0、X1和X2接通时,各段程序中Y0的状态如下图所示。当I/O刷新时,外部输出应由运行的最终结果决定。4)当使用SET和RST指令时,输出的内容随运行过程中每一阶段的执行结果而变化。例如:当X0、X1和X2接通时,各段程序中Y0的状态如下图所示。当I/O刷新时,外部输出应由运行的最终结果决定。
十、KP 指令(keep) • (一)指令功能 KP:相当于一个锁存继电器,当置位输入为ON时,使输出接通(ON)并保持。
(二)程序举例 例题解释: 当X0接通(ON)时,继电器Y0接通(ON)并保持。当X1接通(ON)时,继电器Y0断开(OFF)。
(三)指令使用说明 1)当置位触发信号接通(ON)时,指定的继电器输出接通(ON)并保持。 2)当复位触发信号接通(ON)时,指定的继电器输出断开(OFF)。 3)一旦置位信号将指定的继电器接通,则无论置位触发信号是接通(ON)状态还是断开(OFF)状态,指定的继电器输出保持为ON,直到复位触发信号接通(ON)。 4)如果置位、复位触发信号同时接通(ON),则复位触发优先。 5)即使在MC指令运行期间,指定的继电器仍可保持其状态。 6)当工作方式选择开关从“RUN”切换到“PROG”方式,或当切断电源时,KP指令的状态不再保持。若要在从“RUN”切换到“PROG”方式或切断电源时保持输出状态,则使用保持型内部继电器。
十一、NOP指令(no operation) • (一)指令功能 NOP:空操作。 • (二)程序举例 例题解释:当X1接通时,Y0输出为ON。 (三)指令使用说明 l)NOP指令可用来使程序在检查或修改时易读。 2)当插入NOP指令时,程序的容量稍稍增加,但对算术运算结果无影响。
一、TMR、TMX 和TMY指令 (定时器 timer) • (一)指令功能 TMR:以0.01s为单位设置延时ON定时器。 TMX:以0.1s为单位设置延时ON定时器。 TMY:以1s为单位设置延时ON定时器
(二)程序举例 例题解释: X0接通(ON)3s后,定时器接通(ON)。这时“Y0”接通。
(三)指令使用说明 • l)TM指令是一减计数型预置定时器。 • 2)定时器的预置时间为:单位×预置值 例如:TMX5 K30(0.1s× 30= 3s) • 3)当预置值用十进制常数设定时的步骤为: ①当PLC的工作式设置为“RUN”,则十进制常数“K30”传送到预置值区“SV5”。 ②当检测到“X0”上升沿(OFF→ON)时,预置值K30由“SV5”传送到经过值区“EV5”。 ③当“X0”为接通(ON)状态时,每次扫描,经过的时间从“EV5”中减去。 ④当经过值区“EV5”的数据为0时,定时器接点(T5)接通(ON),随后“Y0”接通(ON)。如图3一24所示。
4)使用TM指令时还应注意: ①如果在定时器工作期间断开定时器触发信号(X0),则其运行中断,且已经经过的时间被复位为0。 ②定时器的预置值区(SV)是定时器预置时间的存储器区。 ③当定时器的经过值区(EV)的值变0时,定时器的接点动作,且定时器经过值区(EV)的值在复位条件下,也变为0。 ④每个SV、EV为一个字,即16位存储器区。对每个定时器号,对应有一组SV、EV,如表3-23所示。 ⑤一旦断电工作方式从“RUN”切换为“PROG”,则定时器被复位。 ⑥因定时操作是在定时器指令扫描期间执行,故用定时器指令编程时,应使TM指令每次扫描只执行一次(当程序中有INT、JP、LOOP和某些其他这类指令时,应确保TM指令每次扫描只执行一次)。