- 三菱PLC技术完全攻略
- 高安邦 姜立功 冉旭主编
- 5040字
- 2024-10-30 04:22:20
3.2.2 A2N系列PLC的顺控指令
顺控指令是专门用于继电器控制的指令,A2N系列PLC的顺控指令常用的有25条,如表3-66所示。
表3-66 A2N系列PLC常用的顺控指令(25条)
下面按照用途分别说明各条指令的功能及用法。
(1)LD/LDI——操作开始指令
LD(Load)为取指令,用于常开触点与左母线连接,如图3-55(a)所示。LDI(Load Inverse)为取反指令,用于常闭触点与左母线连接,如图3-55(b)所示。LD和LDI指令也可以与ANB、ORB指令配合使用于分支回路的起点。
图3-55 LD、LDI指令的编程
LD/LDI指令可用的软元件可为:X、Y、M、L、S、B、F、T、C。
(2)AND/ANI——触点串联连接指令
AND为“与”指令,用于单个常开触点与左边电路的串联,如图3-56(a)所示。
图3-56 AND、ANI指令的编程
ANI为“与非”指令,用于单个常闭触点与左边电路的串联,如图3-56(b)所示。
AND/ANI指令用于单个触点的串联,且串联触点的个数没有限制。但是,若使用图形编程器编程,就受到图形编程器屏幕尺寸的限制。因此,在CPP的梯形图模式下,每行串联的触点个数,最多为21个。
AND/ANI指令可用的软元件与LD/LDI指令相同,仍为X、Y、M、L、S、B、F、T、C。
(3)OR/ORI——触点并联连接指令
OR为“或”指令,用于单个常开触点与上面电路的并联,如图3-57(a)所示。
图3-57 OR、ORI指令的编程
ORI为“或非”指令,用于单个常闭触点与上面电路的并联,如图3-57(b)所示。
OR/ORI指令用于单个触点的并联,且并联触点的个数没有限制。但是,若使用图形编程器编程,就受到图形编程器屏幕尺寸的限制。因此,在CPP的梯形图模式下,一个电路中并联触点个数,最多为23个。
OR/ORI指令可用的软元件与LD/LDI指令相同,仍为X、Y、M、L、S、B、F、T、C。
(4)ANB/ORB——支路(电路块)连接指令
ANB(AND Block)为“与块”指令,用于执行电路块1与电路块2的“与”操作,如图3-58(a)所示。每一个电路块都从LD/LDI指令开始编程,电路块结束后,使用ANB指令与前面的电路串联。
图3-58 ANB、ORB指令的编程
ORB(OR Block)为“或块”指令,用于执行电路块1与电路块2的“或”操作,如图3-58(b)所示。每一个电路块都从LD/LDI指令开始编程,电路块结束后,使用ORB指令与上面的电路并联。
编程时要注意,串联或并联的电路块数最多不能超过8个,也就是说,ANB或ORB不能连续使用7次。
为了节省内存空间,编程时应尽量将串联触点多的部分放在梯形图的上面,将并联触点多的部分放在梯形图的左边。这样可省去一个ORB或ANB指令。
ANB和ORB不是触点的指令而是连接的指令,故它们没有操作数,即指令后面没有目标软元件,它们是纯指令结构。
(5)OUT——输出指令
OUT为线圈驱动指令,用来输出位于OUT指令前面电路的逻辑运算结果。其软元件可为Y、M、L、S、B、F、T、C,但不能用于输入继电器X。
并联的OUT指令可以连续使用若干次。线圈输出后,再通过一个触点或一组触点去驱动一个线圈输出叫作连续输出,如图3-59(a)所示。只要按照正确的次序编程,可以反复使用连续输出,但要注意,若将图3-58(a)中的两条输出支路交换位置,如图3-59(b)所示,则不是连续输出,而是错误次序的编程。
图3-59 连续输出的编程
上述9条指令的编程举例如图3-60所示。其对应的语句表如下:
图3-60 部分顺控指令的编程举例
(6)SET、RST——置位与复位指令
SET为置位指令。当SET的执行条件如“X1”接通时,所指定的软元件如“Y10”接通。此时,即使SET的执行条件断开,所接通的软元件仍然保持接通状态。也就是说,所接通的软元件,在置位信号消失后,如X1断开后,仍然保持接通状态,直到用复位指令RST才将该软元件断开。如图3-61所示。SET的目标软元件(D)可为Y、M、L、S、B、F。
图3-61 SET/RST指令的用法
RST为复位指令,其目标软元件可为除输入继电器X以外的所有位软元件和所有字软元件,即Y、M、L、S、B、F和T、C、D、W、R、A0、A1、Z、V。当RST的执行条件接通时,所指定的软元件若为Y、M、L、S、B、F位软元件,则软元件的线圈失电,常开触点断开;若指定的软元件为计时器T或计数器C,则软元件的当前值复为0,线圈失电,常开触点断开;若指定的软元件为D、W、R、A0、A1、Z、V字软元件,则软元件中所存放的内容为0,如图3-62(a)所示,此时RST的功能与图3-62(a)的功能等价。当RST的输入断开时,软元件的状态不会改变。
图3-62 RST的清零用法
在一个梯形图中,SET和RST指令的编程次序可以任意,但当两条指令的执行条件同时有效时,后编程的指令将优先执行。
例如,在图3-61(a)中,由于复位指令后编程(即复位指令在置位指令的后面),故当置位和复位指令的执行条件(X1和X2)均有效时,复位信号优先起作用,一直到复位信号消失后,置位信号才起作用,其时序图如图3-61(b)所示。但若将梯形图3-61(a)中的两条支路调换位置,则对于同样的置位和复位输入信号X1、X2,输出继电器Y10的时序将有所不同。因为,编程次序调换后,就变成置位优先了,即在置位和复位执行条件均有效时,置位指令优先执行。请读者自己分析此时Y10的时序图。
图3-62为RST的两种清零用法。
(7)PLS、PLF——脉冲输出(微分)指令
PLS为上升沿微分输出指令,用于将指定信号,如图3-63中的X5的上升沿进行微分,并将微分结果(接通一个扫描周期的脉冲)送给PLS指令后面所指定的目标软元件,如图3-63中为M10)。
图3-63 PLS指令的用法
PLF为下降沿微分输出指令,用于将指定信号,如图3-64中的X5的下降沿进行微分,并将微分结果(接通一个扫描周期的脉冲)送给PLF指令后面所指定的目标软元件(图3-64中为M10)。
图3-64 PLF指令的用法
PLS/PLF指令的作用是将脉宽较宽的输入信号,变成脉宽为PLC扫描周期的触发脉冲信号,而该触发脉冲信号的周期与原宽脉冲输入信号的周期相同。
PLS/PLF指令的目标软元件(D)可为:Y、M、L、S、B、F。
PLS/PLF指令常常用来给计数器提供复位脉冲信号,以使计数器的复位操作能正确进行。
(8)SFT、SFTP——移位指令
SFT/SFTP指令用来将SET后面的软元件(此软元件的地址号比SFT/SFTP所指定的软元件的地址号少1)的ON/OFF状态,移位到SFT/SFTP所指定的软元件中,并使低位地址号的软元件复位。SFT/SFTP指令的目标软元件(D)可为:Y、M、L、S、B、F。
使用SFT/SFTP指令时,要用SET指令使要移位的首地址软元件接通,如图3-65所示。当X5接通时,使M9接通。当移位输入信号M1接通时,M9中的状态移动到M10中,同时M9中的状态复位。
图3-65 SFT/SFTP指令的用法
当连续多次使用SFT/SFTP指令时,对地址号较大的软元件应先编程,即对地址号较大的软元件应放在梯形图的前面。比如在图3-66中,Y4C就放在梯形图的前面(即Y4C先编程)。
图3-66 SFT/SFTP指令的应用举例
图3-66即为SFT/SFTP指令的应用举例。从梯形图3-66(a)可以看出,当第一个移位信号到来时,由于X5还未接通,故Y4C~Y48均为0状态;当第二个移位信号到来时,由于此时X5已经接通,Y48为1(即ON状态),则Y48的状态移动到Y49中,此时Y4C~Y48的状态为“00010”,以此类推。其移位过程和时序如图3-66(c)和图3-66(d)所示。
(9)MPS、MRD、MPP——操作结果进栈、读栈、出栈指令
MPS为进栈指令,用于存储在执行MPS指令之前刚产生的操作结果(ON/OFF),然后驱动输出(如Y20),如图3-67所示;MRD为读栈指令,用来读出由MPS存储的操作结果,驱动输出(如Y21);MPP为出栈指令,用它来先读出由MPS存储的操作结果,然后再清除由MPS存储的操作结果,也就是说,当执行完MPP指令后,由MPS所存储的操作结果被清除。
图3-67 MPS、MRD、MPP指令的用法
操作结果进栈、读栈和出栈指令后面均无操作数,属于纯指令结构。
值得说明的是:MPS指令和MPP指令必须成对出现,使用次数一致,如图3-68所示。否则,会导致程序出错。
图3-68 MPS/MPP指令的应用举例(三级嵌套)
(10)MC/MCR——主控指令
主控指令用于打开和关闭母线,使梯形图的切换执行得更有效。每个主控程序均以MC指令开始,以MCR指令结束。如图3-69所示。
图3-69 MC/MCR指令的用法
主控指令的目标软元件(D)可为:Y、M、L、S、B、F。
MC为主控置位(主控开始)指令,用于公共串联接点的连接。当MC指令的执行条件为ON时,从MC到MCR之间程序的操作结果保持不变。当MC指令的执行条件为0时,虽然不执行MC指令,但PLC仍然要对MC和MCR之间的程序进行扫描,因此,扫描时间并不缩短,此时,MC和MCR之间的操作结果如下。
①对于100ms和10ms定时器:当前计时值变为0,线圈和常开触点变为OFF。
②对于100ms带保持定时器和计数器:线圈变为OFF,计时/计数值和触点保持当前状态。
③对于OUT指令用到的软元件:全部变为OFF。
④对于SET、RST、SFT、基本指令和应用指令中用到的软元件:保持当前状态。
但对于那些在其前面无需触点指令的指令(如FOR-NEXT、EI、DI指令等),则PLC不管MC指令的执行条件处于何种状态(ON/OFF),都要执行这些指令。
MCR为主控复位指令,表示主控范围的结束。在梯形图中,MCR指令所在的分支上,不能有触点。
在主控范围内的编程方法与前面讲的相同,即与母线连接的触点从LD/LDI开始编程。当主控范围结束时,由MCR指令使后面的程序返回到原母线。
在图3-69中,当输入X0为ON时,公共串联触点M0为ON。只有当M0为ON时,从MC到MCR程序中的输出才可能为ON。在M0有效时,输入X1为ON,输出Y20被接通;当输入X2为ON时,输出Y21被接通。
当在一个梯形图中多次使用主控指令而又不是嵌套结构(独立结构)时,可以反复多次使用N0。如图3-69所示。
对于严格要求按照顺序条件执行的电路,MC/MCR可以采用多级嵌套,即在MC指令内再用MC指令。其嵌套级号为N0~N7,最多可用8级嵌套。MC的嵌套级号从小级号开始,即从N0到N7;而MCR的嵌套则从所使用嵌套级数的最大级号开始。比如,假设有两级嵌套,则MC从N0到N1,而MCR则从N1到N0,如图3-70所示。如果嵌套级号用反了,则不能构成正确的嵌套,PLC的操作将出错。
图3-70 MC/MCR指令的嵌套结构
如果所有嵌套均在同一地方使用MCR指令,则只要使用最小的嵌套级号一次便可结束所有的MC指令,如图3-71所示。
图3-71 MC/MCR指令的应用举例
(11)CHK——位软元件输出取反指令
在刷新方式下,CHK指令用于对指定位软元件的输出状态取反。其指令的结构形式如图3-72所示。
图3-72 CHK指令的结构形式
其中,(D1)为所要取反的软元件,它可为Y、M、L、S、B、F;(D2)为一个虚设数据,它可为除输入继电器X以外的所有位软元件(其数字规格为K1~K4)和所有字软元件。由于(D2)为虚设数据,因此(D2)所指定的软元件还可任意用作其他用途。
当执行条件从OFF变到ON时,CHK指令对指定软元件(即上面的“D1”)的输出状态取反。例如,图3-73所示的程序中:当X5接通时(即当X5发生正跳变时),Y10的输出状态取反(图中的“M1 K4”为虚设数据,不起什么作用),其对应的时序如图3-74所示。
图3-73 CHK指令的应用程序
图3-74 图3-73所示程序对应的时序
(12)NOP——空操作指令
NOP为空操作指令,其后没有目标软元件(即无操作数),用于程序的修改。
在执行NOP指令时,并不进行任何操作,但需占用一步的执行时间。
NOP指令用于以下情况:
①为程序提供调试空间;
②删除一条指令而不改变步数(用NOP代替要删除的指令);
③临时删除一条指令;
④短路某些触点,如图3-75所示。
图3-75 使用NOP指令修改电路
使用NOP指令时需注意,在将LD或LDI指令改为NOP指令时,梯形图的构成将发生很大变化,如图3-75(b)所示,甚至可能使电路出错。
NOP指令无操作数。
(13)STOP——程序停止指令
STOP为顺控程序停止指令,其后面无操作数。STOP指令具有以下功能。
①当停止运行指令STOP的执行条件(如图3-76中的X5)为ON时,停止PLC的运行,此时输出(Y)复位(与运行开关从“RUN”位置扳到“STOP”位置的功能相同)。
图3-76 STOP指令的用法
②在执行完STOP指令后,若要恢复PLC的操作,可将“RUN”开关从“RUN”位置扳到“STOP”位置,然后再从“STOP”位置扳到“RUN”位置。
③当已执行STOP指令时,即使将复位开关(RESET)扳到“LATCH CLEAR”位置,也不执行锁存清除操作。要执行锁存清除,可将RUN开关先扳到STOP位置,然后再将RESET开关扳到“LATCH CLEAR”位置。
④不要在中断程序、子程序和FOR/NEXT指令中使用STOP指令。否则,会发生操作错误。
⑤当执行STOP时,特殊寄存器D9015的第9位(即b8位)置为1。
(14)FEND、END——程序结束指令
FEND为主程序结束指令,用于主程序的结束。使用时,若出现以下两种情况,将产生操作错误,PLC停止其操作:
①在执行CALL(P)指令后,到执行RET指令前已执行FEND指令;
②在执行FOR指令后,到执行NEXT指令前已执行FEND指令。
END为程序结束指令,用于程序的终了。PLC反复进行输入处理、程序执行和输出处理。若在程序的末尾写入END指令,则在END以后的程序就不再被执行了,直接进行输出处理。在程序调试过程中,按段插入END指令,可以顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面的程序动作正确无误后,再依次删去END指令。
在使用END指令时,若出现以下两种情况,将产生操作错误,PLC将停止其操作:
①程序用CJ、SCJ或JMP指令跳转到END指令后面的步序;
②执行在END指令后面的子程序或中断程序。
FEND和END指令均无目标软元件。