首页 理论教育 的基本指令

的基本指令

时间:2023-02-14 理论教育 版权反馈
【摘要】:基本指令是构成继电器顺序控制回路的基本要素,还是PLC使用中最常见,也是用得最多的指令。FP0的基本指令可分为四类,即基本顺序指令、基本功能指令、基本控制指令、条件比较指令。基本顺序指令主要是对软继电器和其触点进行逻辑操作的指令。一般情况下,对于某个输出继电器Y或通用内部继电器R只能使用一次OT指令,否则,PLC按照出错对待。每个定时器均可通过指令设置为不同定时精度。

基本指令是构成继电器顺序控制回路的基本要素,还是PLC使用中最常见,也是用得最多的指令。FP0的基本指令可分为四类,即基本顺序指令、基本功能指令、基本控制指令、条件比较指令。

6.2.1 基本顺序指令

基本顺序指令主要是对软继电器和其触点进行逻辑操作的指令。它是以位(bit)为单位的逻辑操作。FP0的基本顺序指令共19条,下面按照功能分组进行介绍。

1.输入输出指令:ST、ST/、OT、/

ST(Start,初始加载):用常开触点开始逻辑运算指令。

ST/(Start Not,初始加载非): 用常闭触点开始逻辑运算指令。

OT(Out,输出): 输出运算结果到指定的输出继电器或通用内部继电器,是软继电器线圈的驱动指令。

/(Not,非):将该指令处的运算结果取反。

【例6-1】 输入输出指令如图6-5所示。

图6-5 输入输出指令示例

(a)梯形图;(b)语句表

例题说明:当输入X0接通时,Y0接通,因为Y1前面有非指令,因此与Y0的状态正好相反;当输入X0断开时,Y1接通。对于输出Y2,也是当输入X0断开时,其常闭触点接通, Y2接通。

注意

(1)/指令为逻辑取反指令,可单独使用,但是一般都与其他指令组合形成新指令使用,如ST/。

(2)OT不能直接从左母线开始,但是必须以右母线结束。

(3)OT指令可以连续使用,构成并联输出。

(4)一般情况下,对于某个输出继电器Y或通用内部继电器R只能使用一次OT指令,否则,PLC按照出错对待。

2.逻辑操作指令:AN、AN/、OR、OR/

AN(与):串联一个常开触点。

AN/(与非):串联一个常闭触点。

OR(或):并联一个常开触点。

OR/(或非):并联一个常闭触点。

【例6-2】 利用基本逻辑指令实现自锁控制如图6-6所示。

例题说明:当输入X1接通时,Y0线圈接通,Y0的常开触点闭合,即使X1触点断开,Y0输出仍能保持接通,实现自锁;当输入X0接通时,其常闭触点断开时,Y0断电,Y0常开触点也断开。若想再次启动Y0,只有重新接通X1。

注意 AN、AN/、OR、OR/可连续使用。

3.块逻辑操作指令:ANS、ORS

ANS(And Stack,组与):执行多指令块的与操作,即实现多个逻辑块相串联。

图6-6 基本逻辑指令实现自锁控制

(a)梯形图;(b)语句表

ORS(Or Stack,组或):执行多指令块的或操作,即实现多个逻辑块相并联。

【例6-3】 组与指令示例如图6-7所示。

图6-7 组与指令示例

(a)梯形图;(b)语句表

【例6-4】 组或指令示例如图6-8所示。

图6-8 组或指令示例

(a)梯形图;(b)语句表

对于多个触点组进行串联或并联的梯形图程序,助记符指令输入可以有两种不同方法:一种是先逐个输入逻辑块,再连续进行组与(或组或);另一种是先输入两个逻辑块,将其组与(或组或),然后输入第三个逻辑块,再组与(或组或),以此类推,直到将所有逻辑块全部输入完毕。

4.堆栈指令:PSHS、RDS、POPS

PSHS(Push Stack,压入堆栈):将该指令处的操作结果压入堆栈存储,执行下一步指令。

RDS(Read Stack,读取堆栈):读出PSHS指令存储的操作结果,需要时可反复读出,堆栈的内容不变。

POPS(Pop Stack,弹出堆栈):读出并清除由PSHS指令存储的操作结果。

【例6-5】 堆栈指令示例如图6-9所示。

5.微分指令:DF、DF/

DF(Leading Edge Differential,上升沿微分):当PLC检测到触发信号上升沿(由OFF到ON的跳变)时,使指定的对象接通一个扫描周期。

图6-9 堆栈指令示例

(a)梯形图;(b)语句表

DF/(Trailing Edge Differential,下降沿微分):当PLC检测到触发信号下降沿(由ON到OFF的跳变)时,使指定的对象接通一个扫描周期。

【例6-6】 微分指令示例如图6-10所示。

图6-10 微分指令示例

(a)梯形图;(b)语句表

例题说明:X0常开触点为微分指令触发信号,当PLC检测到X0由OFF→ON(上升沿)时,输出Y0接通一个扫描周期;当检测到X0由ON→OFF(下降沿)时,输出Y1接通一个扫描周期。

注意

(1)微分指令强调的是在触发信号上升沿或下降沿时刻发生作用,这里的“触发信号”指的是DF或DF/前面指令的运算结果,可以是一个触点的状态,也可以是几个触点运算的结果。

(2)触发信号变化沿出现时,只使指定的对象接通一个扫描周期,在实际应用中特别适用于那些只需触发执行一次的动作。

(3)在程序中,对微分指令的使用次数无限制。

6.置位、复位指令:SET、RST

SET(Set,置位):当触发信号接通时,使输出继电器Y或通用内部继电器R接通并保持。

RST(Reset,复位):当触发信号接通时,使输出继电器Y或通用内部继电器R断开并保持。

【例6-7】 置、复位指令示例如图6-11所示。

图6-11 置、复位指令示例

(a)梯形图;(b)语句表

例题说明: X1接通时Y0接通并保持,X0接通时Y0断开。

注意

(1)SET、RST指令可实现使线圈接通保持或断开的功能,但需要注意的是RST指令的复位触发信号需在接通时才有效,因此使用的是X0的常开触点。

(2)对于同一序号继电器Y或R的输出线圈,SET、RST指令使用次数不限。

(3)对于同一序号的输出线圈,SET、RST指令后面使用OT指令时,其最终状态由OT指令确定。

7.保持指令:KP

KP(Keep,保持):使输出线圈接通并保持。

该指令有两个控制条件:置位条件(S)与复位条件(R)。当满足置位条件,指定继电器(Y或R)接通,一旦接通后,无论置位条件如何变化,该继电器仍然保持接通状态,直至复位条件满足时断开。

【例6-8】 保持指令示例如图6-12所示。

图6-12 保持指令示例

(a)梯形图;(b)语句表

例题说明: X1接通,Y0接通并保持,直至X0接通时Y0断开。

注意

(1)R端的优先权高于S端,即如果S端与R端两个信号同时接通,R端信号优先有效。

(2)对同一序号的输出线圈,KP指令不能重复使用。

8.空操作指令:NOP

NOP(No Operation,空操作):在执行NOP指令时,不产生任何实质性的操作,只是消耗该指令的执行时间。在程序中常有意地插入NOP指令,编程系统会自动对其编号,此时NOP指令可用于对程序进行分段,或作为特殊标记,以便于检查、修改和调试程序。

【例6-9】 空操作指令示例如图6-13所示。

图6-13 空操作指令示例

(a)梯形图;(b)语句表

6.2.2 基本功能指令

基本功能指令主要包括定时、计数和移位3种功能的指令。

1.定时器指令:TM(Timer)

1)书写格式

TM(Timer)是定时器指令,其书写格式如图6-14所示。

图6-14 定时器指令书写格式

2)功能说明

(1)在FP0型PLC中初始定义有100个定时器,编号为T0~T99。通过系统寄存器No.5可重新设置定时器的个数。

(2)定时器同输出继电器的概念一样,包括线圈和触点两个部分,采用相同编号,但是线圈用来设置,触点则是用于引用。因此,在同一个程序中,相同编号的定时器只能使用一次,即设置一次,而该定时器的触点可以通过常开或常闭触点的形式被多次引用。

(3)定时器按定时时钟分为4种类型:L—0.001s;R—0.01s;X—0.1s;Y—1s。每个定时器均可通过指令设置为不同定时精度。如“TML0,K5000”、“TMR0,K500”、“TMX0, K50”及“TMY0,K5”的定时时间均为5s,差别仅在于定时的时间精度不同。

(4)定时器的设定值即为时间常数,它只能用十进制或专用寄存器SV表示。其范围是1~32767内的任意值。在编程格式中时间常数前要加一个大写字母“K”。

(5)定时器的设定值和经过值会自动存入相同编号的专用寄存器SV和EV中,可通过查看同一编号的SV和EV内容来监控该定时器的工作情况。

(6)由于定时器在定时过程中需持续接通,所以在程序中定时器的控制信号后面不能串联微分指令。

3)工作原理

定时器为减1计数。当程序进入运行状态后,输入触点接通瞬间定时器开始工作,先将设定值寄存器SV的内容装入经过值寄存器EV中,然后开始计数。每来一个时钟脉冲,经过值减1,直至EV中内容减为0时,该定时器对应触点动作,即常开触点闭合,常闭触点断开。而当输入触点断开时,定时器复位,对应触点恢复原来状态,经过值寄存器EV清零,但SV不变。若在定时器未达到设定时间时断开其输入触点,则定时器停止计时,其EV被清零,定时器对应触点不动作,直至输入触点再接通,重新开始定时。

【例6-10】 定时器指令示例如图6-15所示。

图6-15 定时器指令示例

(a)梯形图;(b)语句表

例题说明:当X0接通时,定时器T1开始定时,10s后,定时时间到,定时器对应的常开触点T1接通,使输出继电器Y0导通;当X0断开时,定时器复位,对应的常开触点T1断开,输出继电器Y0断开。

另外,定时器可以串联也可以并联使用。串联时,后面定时器的延时时间等于前面各定时器延时时间的总和;并联时,各定时器的延时时间互不影响。

【例6-11】 定时器串联与并联梯形图如图6-16所示。

图6-16 定时器串联与并联梯形图

(a)定时器串联梯形图;(b)定时器并联梯形图

定时器初始设定值可以通过F0(MV)指令改变如图6-17示。

【例6-12】 改变定时器初始值梯形图如图6-17所示。

例题说明:X0未动作,X1得电时,定时器的延时时间为3s;当X0得电、X1也得电时,定时器的延时时间改为5s。此时再断开X0,延时时间仍为5s。

另外高级指令里有两个辅助定时器指令F137(STMR)和F183(DSTM),F137(STMR)是以0.01s为最小时间单位设置延时接通的16位减数型定时器,其延时范围为0.01~327.67s;F183(DSTM)指令是以0.01s为最小时间单位设置延时接通的32位减数型定时器,其延时范围为0.01~21474836.47s,此类定时器与TM类似,但是设置方式上有所区别,可在FP0编程说明手册里查到具体用法。

图6-17 改变定时器初始值梯形图

2.计数器指令:CT(Counter)

1)书写格式

CT(Counter)指令是一个减计数型的预置计数器,其书写格式如图6-18所示。

图6-18 计数器指令书写格式

2)功能说明

(1)在FP0型PLC中初始定义有44个定时器,编号为C100~C143。通过系统寄存器No.5可重新设置计数器的个数。设置时注意TM和CT的编号要前后错开。

(2)在同一个程序中,相同编号的计数器只能使用一次,而该计数器的常开或常闭触点可以被多次引用。

(3)计数器有两个输入端——计数脉冲输入端CP和复位端R,分别由两个输入触点控制,R端优先权高于CP端。

(4)每个计数器对应有相同编号的16位专用寄存器SV和EV,以存储设定值和经过值。计数器的设定值即为计数器的初始值,该值为0~32767间的任意十进制数,书写时前面一定要加字母“K”。

3)工作原理

计数器为减1计数。程序一进入“运行”方式,计数器就自动进入初始状态,此时SV的值被自动装入EV,当计数器的计数输入端CP检测到一个脉冲上升沿时,经过值EV被减1,当经过值被减为0时,计数器相应的触点动作,即常开触点闭合、常闭触点断开。计数器的另一输入端为复位输入端R,当R端接收到一个脉冲上升沿时计数器复位,经过值寄存器EV被清零,其常开触点断开,常闭触点闭合;当R端接收到脉冲下降沿时,将设定值数据再次从SV传送到EV中,计数器重新开始工作。

【例6-13】 计数器指令示例如图6-19所示。

例题说明:程序开始运行时,计数器自动进入计数状态。当检测到X0的上升沿500次时,计数器对应的常开触点C101接通,使输出继电器Y0导通;当X1接通时,计数器复位清零,对应的常开触点C101断开,输出继电器Y0断开。

图6-19 计数器指令示例

(a)梯形图;(b)语句表

计数器初始设定值可以通过F0(MV)指令改变,如图6-20所示。

【例6-14】 改变计数器初始值梯形图如图6-20所示。

图6-20 改变计数器初始值梯形图

例题说明:当X0未动作时,计数器的计数值为10;当X0闭合后,计数器的计数值改为50。此时再断开X0,计数设定值仍为50。

FP0高级指令中有一条F118(UDC)指令,也起到计数器的作用。与CT不同的是:该指令可以根据参数设置,分别实现加/减计数的功能,可在FP0编程说明手册里查到具体用法。

3.移位指令:SR、F119(LRSR)

1)书写格式

SR(Shiftregister): 左移移位指令,其书写格式如图6-20所示。图中IN为数据输入端, CP为移位脉冲输入端,R为移位寄存器的复位端。

图6-21 左移位指令示例

(a)梯形图;(b)语句表

【例6-15】 左移位指令示例如图6-21所示。

例题说明:当复位信号X2为OFF状态时,每当检测到移位信号X1的上升沿,WR3寄存器的数据左移1位,最高位丢失;最低位由当时数据输入信号X0的状态决定,如果当时X0处于接通状态则补“1”,否则补“0”。如果X2接通,WR3的内容清零,这时X1信号无效,移位指令停止工作。以图示来说明如图6-22所示。

图6-22 左移位指令说明

2)功能说明

(1)该指令的操作数只能用内部寄存器WR,可指定WR中任意一个作为移位寄存器使用。

(2)IN端是数据输入端,移位发生时,该端接通则移入“1”,该端断开则移入“0”。

(3)CP端是移位脉冲输入端,该端每接通一次(上升沿有效),指定寄存器的内容左移1位。

(4)R比CP端优先权高,该端为OFF时,移位有效。

FP0高级指令中有一条F119指令,其作用是使指定内部寄存器区域D1~D2中的数据向左或向右移动1位,可在FP0编程说明手册里查到具体用法。

6.2.3 基本控制指令

基本控制指令在PLC指令系统中占有重要地位,它们用来决定程序执行的顺序和流程。这类指令可使程序结构清晰,可读性好,编程灵活。基本控制指令见表6-7。

表6-7 基本控制语句表

续表

1.结束指令:ED(无条件结束指令)、CNDE(条件结束指令)

1)书写格式

结束指令书写格式如图6-23所示。

2)功能说明

(1)当控制触点X0断开时,CPU执行完程序段1后并不结束,继续执行下方程序段2,当遇到ED指令,才结束当前的扫描周期。

(2)当控制触点X0闭合时,条件结束指令CNDE起作用,CPU执行完程序段1后,返回程序起始地址,当前的扫描周期结束,进入下一次扫描,不再扫描程序段2。

2.主控继电器指令:MC(主控继电器指令)、MCE(主控继电器结束指令)

1)书写格式

主控继电器指令书写格式如图6-24所示。

图6-23 结束指令书写格式

图6-24 主控继电器指令示例

2)功能说明

当控制触点X0接通时,执行MC0到MCE0之间的程序;否则,不执行MC0到MCE0之间的程序。

3)注意事项

(1)MC和MCE在程序中应成对出现,每对编号相同,编号范围为0~31的整数,当程序中出现多对主控指令时,编号不能重复。

(2)MC和MCE的顺序不能颠倒。

(3)MC指令不能直接从母线开始,即必须有控制触点。

(4)在一对主控继电器指令之间可以嵌套另一对主控继电器指令。

(5)当MC指令前面的控制触点断开时,MC与MCE之间的程序遵循扫描但不执行的特点,所有输出(OT)均处于断开状态,KP、SET、RST指令呈保持状态,定时器TM复位,计数器CT和左移位SR保持原有经过值且停止工作,微分指令无效。

3.跳转指令:JP(跳转指令)、LBL(跳转标记指令)

1)书写格式

跳转指令书写格式如图6-25所示。

图6-25 跳转指令示例

2)功能说明

当控制触点X1闭合时,跳转到和JP指令编号相同的LBL处,不执行JP和LBL之间的程序,转而执行LBL指令之后的程序。

3)注意事项

(1)JP和LBL指令应成对使用,其放置位置先后顺序不限。

(2)可以使用多个编号相同的JP指令,即允许设置多个跳向一处的跳转点,编号可以为0~63的任意整数,但不能出现相同编号的LBL指令。

(3)JP指令不能直接从母线开始。

(4)在一对跳转指令之间可以嵌套另一对跳转指令。

(5)不能从结束指令ED以前的程序跳转到ED以后的程序中去,不能在子程序或中断程序与主程序之间跳转,不能在步进区和非步进区之间进行跳转。

(6)在执行跳转指令时,在JP和LBL之间程序遵循不扫描不执行的原则。

4.循环跳转指令:LOOP(循环跳转指令)、LBL(循环标记指令)

1)书写格式

循环跳转指令书写格式如图6-26所示。

2)功能说明

当控制触点X6闭合时,循环次数(DT0)减1,如果DT0中内容不为0,跳转到与LOOP相同编号的LBL处,执行LBL指令后的程序。重复上述过程,直至DT0为0,停止循环;当控制触点X6断开时,不执行循环。

3)注意事项

(1)LOOP和LBL指令必须成对使用,且编号应相同,编号可以为0~63的任意整数,但不能出现相同编号的LBL指令。

(2)LBL指令与同编号的LOOP指令的前后顺序不限。一般将LBL指令放于LOOP指令的上面,此时,执行循环指令的整个过程都是在一个扫描周期内完成的。

(3)LOOP指令不能直接从母线开始。

(4)循环跳转指令可以嵌套使用。

(5)不能从结束指令ED以前的程序跳转到ED以后的程序中去,也不能在子程序或中断程序与主程序之间跳转,不能在步进区和非步进区进行跳转。

5.子程序调用指令:CALL(子程序调用指令)、SUB(子程序开始标志指令)、RET(子程序结束指令)

1)书写格式

子程序调用指令书写格式如图6-27所示。

图6-26 循环跳转指令示例

图6-27 子程序调用指令示例

2)功能说明

CPU执行到主程序段1中(CALL1)指令处时,若调用子程序条件X0成立,程序转至子程序起始指令(SUB1)处,执行(SUB1)到RET之间的第1号子程序。当执行到RET指令,子程序结束并返回到CALL1的下一条指令处,继续执行主程序段2。若X0断开,则不调用子程序,按顺序继续执行主程序段2。

3)注意事项

(1)FP0-C32可用子程序的个数为16个,其编号范围为SUB0~SUB15,程序中子程序的编号不能重复。

(2)子程序必须编写在主程序的ED指令后面,由子程序入口标志SUB开始,最后由RET语句表示返回主程序,SUB和RET必须成对使用。

(3)子程序调用指令CALL可以在主程序、子程序或中断程序中使用,多个相同标号的CALL指令可以调用同一子程序。

(4)子程序可以嵌套调用,但最多不超过5层。

6.步进指令:SSTP(步进开始指令)、NSTP(脉冲式转入步进指令)、NSTL(扫描式转入步进指令)、CSTP(步进复位指令)、STPE(步进结束指令)

1)书写格式

步进指令书写格式如图6-28所示。

2)功能说明

当检测到X0的上升沿时,执行步进过程1,输出Y10接通;当X1接通时,清除步进过程1(Y10复位),并执行步进过程2……当X3接通时,清除步进过程50,步进程序执行完毕。

3)注意事项

(1)步进程序必须严格按照图6-28格式书写。

(2)步进程序编号可以取0~127中的任意数字,但各段编号不能相同。步进指令可以不按编号顺序进行书写,PLC按梯形图排列的顺序来执行各段程序。

(3)步进程序中允许输出OT直接同左母线相连。

(4)步进程序中不能使用MC和MCE,JP和LBL,LOOP和LBL,ED和CNDE指令。

(5)当NSTP或NSTL前面的触点闭合时执行步进程序,此时PLC将清空上一次步进结果,但二者使用条件不同:NSTP只在触点由断到通的一瞬间即上升沿时执行,此后即使触点一直处于闭合状态,也不再执行步进;而NSTL只要控制触点是闭合状态就执行步进。

(6)NSTP或NSTL必须有控制触发信号。步进控制程序区结束应有STPE指令。

(7)尽管每个步进程序段都是相对独立的,但在各段程序中所用的输出继电器、内部继电器、定时器、计数器等都不允许出现相同编号,否则按出错处理。

(8)标志状态:在刚刚打开一个步进过程的第一个扫描周期,特殊内部继电器R9015接通,若使用R9015触发步进时,应将R9015写在步进过程的开头。

步进指令可以实现多种控制,如顺序控制、选择分支控制、并行分支控制等,是PLC应用中一个重要控制手段,尤其适合于顺序控制。

【例6-16】 步进指令用于顺序控制如图6-29所示。顺序控制任务是液压动力滑台的自动工作控制,包括3个步进过程0~2,每个过程实现的动作分别是快进(Y0)、工进(Y1)、快退(Y2),由按钮SB1(X1)作为步进启动信号,行程开关SQ1(X4)作为步进结束信号,SQ2 (X2)、SQ3(X3)作为过程0、过程1、过程2之间的转换控制信号。实现这一步进控制的流程图如图6-30所示,梯形图程序如图6-31所示。

图6-28 步进指令示例

图6-29 顺序控制任务示意图

图6-30 顺序控制流程图

图6-31 顺序控制梯形图程序

6.2.4 条件比较指令

条件比较指令是带有逻辑运算功能的比较指令,包括单字(16位)比较和双字(32位)比较。它们既有基本指令的逻辑功能,又有高级指令的运算功能,这些指令在程序中非常有用。

1.书写格式

条件比较指令书写格式如图6-32所示。

图6-32 条件比较指令书写格式

2.功能说明

(1)比较指令中的比较运算符,主要有等于=、大于>、小于<、大于等于> =、小于等于<=和不等于<>共6种关系,满足关系为真,不满足则为假。

(2)指令中的比较操作数,可以为常数,也可以为寄存器的值。FP0中条件比较指令中可使用的寄存器见表6-8。

表6-8 FP0中条件比较指令中可使用的寄存器

(3)条件比较指令可以直接从母线引出,作为逻辑运算开始,也可以与其他触点或条件比较指令进行随意串、并联,进行逻辑运算。具体指令见表6-9。

表6-9 条件比较指令符号及功能

(4)单字比较为16位数据,双字比较为32位数据,用寄存器寻址时,后者采用两个相邻寄存器联合取值,书写双字比较指令程序时,只需给出低16位的寄存器名即可。

【例6-17】 条件比较指令示例如图6-33所示。

图6-33 条件比较指令示例

该程序中,设DT2中数据用x表示,(DT1,DT0)中数据用y表示,则当16≤x≤32,或者y≥64时,R0导通,输出为ON;否则,R0断开,输出为OFF。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈