FX系列PLC的基本指令包括触点指令、结合指令、线圈输出类指令、主控指令、其他指令等五类,分别见表2-1~表2-5。
表2-1 触点指令
(续)
表2-2 结合指令
(续)
表2-3 线圈输出类指令
表2-4 主控指令
表2-5 其他指令
1.LD、LDI指令
LD(LOAD)/LDI(LOAD INVERSE)指令用于软元件的常开/常闭触点与母线、临时母线、分支起点的连接,或者说是表示母线运算开始的触点。
LD/LDI指令可用的软元件有:X、Y、M、S、T、C。LD/LDI指令编程及时序图如图2-1、图2-2所示。
图2-1 LD指令编程及时序图
图2-2 LDI指令编程及时序图
在FX3U系列PLC中,LD和LDI指令可以通过变址(V、Z)进行修饰,如图2-3所示。
图2-3 LD指令通过变址修饰情况
图2-3中,当V0=K11时,由X013决定Y000的输出情况。
2.OUT指令
OUT指令也叫作线圈驱动指令,用于线圈的连接。OUT指令可多次连续使用(这叫作并联输出)。OUT指令可使用的软元件有Y、M、S、T、C。
OUT指令编程示例如图2-4所示。
图2-4 OUT指令编程示例
a)梯形图程序 b)指令表 c)时序图
定时器和计数器的线圈设定时,在OUT指令后要加上设定值,设定值以十进制数直接指定,也可以通过数据寄存器(D)或文件寄存器(R)间接指定,如图2-5、图2-6所示。
图2-5 直接指定示例
图2-6 间接指定示例
3.AND/ANI(与/与非)指令
AND/ANI指令用于一个常开/常闭触点与其前面电路的串联连接(做“逻辑与”运算),串联触点的数量不限,该指令可多次使用。AND/ANI指令可用的软元件为X、Y、M、S、T、C等。使用参考如图2-7、图2-8示例所示。
图2-7 AND指令使用示例
图2-8 ANI指令使用示例
4.OR/ORI(或/或非)指令
OR/ORI指令用于一个常开/常闭触点与上面电路的并联连接(做“逻辑或”运算)。并联触点的数量不限,该指令可多次使用,但当使用打印机打印程序时,并联列数不要超过24行。OR/ORI指令可用的软元件为X、Y、M、S、T、C。使用参考如图2-9示例所示。
5.LDP、LDF、ANDP、ANDF、ORP、ORF指令
LDP、LDF、ANDP、ANDF、ORP、ORF指令是触点指令。这些指令表达的触点在梯形图中的位置与LD、AND、OR指令表达的触点在梯形图中的位置相同,只是两种指令表达的触点的功能有所不同。
LDP、ANDP、ORP指令是上升沿检测的触点指令。在指定软元件的触点状态由OFF→ON时刻(上升沿),其驱动的软元件接通1个扫描周期。
LDF、ANDF、ORF指令是下降沿检测的触点指令。在指定软元件的触点由ON→OFF时刻(下降沿),其驱动的软元件接通1个扫描周期。
图2-9 0R、ORI使用示例
LDP、LDF、ANDP、ANDF、ORP、ORF指令可用的软元件为X、Y、M、S、T、C。上升沿指令使用示例如图2-10所示。
图2-10 上升沿指令使用示例
6.ORB(电路块或)指令
电路块:电路块是指由两个或两个以上的触点连接构成的电路。
ORB指令用于串联电路块的并联连接。ORB指令的用法和编程示例如图2-11所示。
图2-11 ORB指令的用法和编程示例
使用ORB指令要点如下:
1)编程时,每一个电路块单独进行编程,即每个电路块都起始于LD/LDI指令。
2)ORB指令是块连接指令,编程时,指令后面没有软元件。
3)编写多个电路块的并联程序时,ORB指令可写于每个电路块后(见图2-11指令表),这样可并联无限多的电路块,ORB的使用次数没有限制,也可将所有电路块程序写完后,连续写多个ORB指令,但采取这种编程方式时,最多可连续写8次ORB指令。
7.ANB(电路块与)指令
ANB指令用于并联电路块的串联连接。ANB指令的用法和编程示例如图2-12所示。使用ANB指令要点如下:
1)每一个电路块要单独编程,即每一个电路块都起始于LD/LDI指令。(www.xing528.com)
2)ANB指令是块连接指令,编程时,指令后面没有软元件。
3)编写多个电路块串联程序时,ANB指令可写于每个电路块后,这样可串联无限多的电路块,也可将所有电路块程序写完后,连续写多个ANB指令。但采取这种编程方式时,最多可连续写8次ANB指令。
图2-12 ANB指令用法编程示例
8.MPS、MRD、MPP(运算结果进栈、读栈、出栈)指令
FX系列可编程序控制器中有11个被称为堆栈的内存,用于记忆运算的中间结果。MPS、MRD、MPP指令用于多重分支输出电路的编程。MPS、MRD、MPP指令基本结构如图2-13所示。
图2-13 栈指令基本结构
MPS(PUSH)为进栈指令,该指令将当前的运算结果送入栈存储器。
MRD(READ)为读栈指令,该指令用于读出栈内由MPS指令存储的运算结果。栈内数据不改变。
MPP(POP)为出栈指令,该指令用于取出栈内由MPS指令存储的运算结果,同时该数据在栈内消失。
使用栈指令基本要点如下:
1)栈起点相当于电路的串联连接,写指令时使用AND、ANI指令。
2)MPS、MPP指令必须成对使用。
3)编程时,在MPS、MRD、MPP指令后没有软元件。
4)MPS指令可以重复使用,但使用次数不允许超过11次(或者说,最多可做11个分支点记忆),这在实际中被称为多层栈,如图2-14、图2-15所示。
图2-14 二层栈编程示例
图2-15 三层栈编程示例
9.MC、MCR主控指令
MC(Master Control):主控指令或公共触点串联连接指令(MC的意义是将母线转移到条件触点后面)。
MCR(Master Control Reset):主控复位指令(MCR的意义是将母线还原回来)。
MC、MCR指令用于一个或多个触点控制多条分支电路的编程。每一个主控程序均以MC指令开始,以MCR指令结束,它们必须成对使用。当执行指令的条件满足时,直接执行从MC到MCR的程序。例如,在图2-16中,当X001为ON时,执行MC到MCR间的程序,否则不执行这段程序。当X001为OFF时,即使此时X002为ON,Y001也为OFF。
图2-16 主控指令编程示例
主控指令编程要点如下:
1)使用主控指令的触点称为主控触点,在梯形图中与一般触点相垂直。
2)使用主控触点后,相当于将母线移到主控触点的后面。
3)MC指令的输入触点断开时,积算定时器/计数器和用复位/置位指令驱动的软元件保持其当前的状态;非积算定时器和用OUT驱动的软元件变为OFF。
图2-17 多重主控指令编程示例
4)在MC指令与MCR指令之间可再次使用MC/MCR指令,这叫作嵌套。主控触点回路内最多可有8层嵌套。嵌套次数可按顺序分为0~7级,嵌套层数为0~7层,用N0~N7表示(其嵌套编号须依序加大:N0→N1→N2→N3→N4→N5→N6→N7)。主控结束按N7~N0顺序表示(其嵌套编号须依次减小:N7→N6→N5→N4→N3→N2→N1→N0)。多重主控指令使用编程如图2-17所示。
5)主控指令MC可使用的软元件为Y、M。
10.PLS、PLF(脉冲沿微分输出)指令
PLS指令将指定信号上升沿进行微分后,输出一个脉冲宽度为一个扫描周期的脉冲信号。如图2-18所示,当X000的状态由OFF→ON时,M10接通一个扫描周期。
PLF指令将指定信号的下降沿进行微分后,输出一个脉冲宽度为一个扫描周期的脉冲信号。如图2-19所示,当X001的状态由ON→OFF时,M11接通一个扫描周期。
通常使用PLS/PLF指令将脉宽较宽的输入信号变成脉宽为一个扫描周期的触发信号,用该信号可对计数器进行初始化或复位。
PLS/PLF指令可使用的软元件为Y、M(特殊M除外)。
图2-18 PLS指令编程示例
图2-19 PLF指令编程示例
另外,图2-20中,使用OUT指令和PLS指令的功能是一样的。
图2-20 OUT指令和PLS指令等效程序
11.SET(置位)、RST(复位)指令
SET指令用于对软元件置位,即将受控组件设定为ON并保持受控组件的状态。SET指令可使用的软元件为Y、M、S。
RST指令用于对软元件复位,即将受控组件设定为OFF,也就是解除受控组件的状态。RST指令可使用的软元件为Y、M、S、T、C、D、V、Z。
积算定时器T246~T255的当前值要复位,也必须使用RST指令。
将数据寄存器D、V、Z中的内容清0,除了可用RST指令外,还可使用MOV指令将K0传送到D、V、Z中。
SET、RST指令的用法如图2-21所示,当X000为ON时,执行SET指令,Y000置位为ON状态,并保持0N状态,即使X000变为OFF,Y000仍然为ON的状态。当X001为0N时,执行RST指令,Y000复位为OFF状态。若X000、X001均为ON时,则后执行的指令优先,图2-21中复位指令优先。
图2-21 SET、RST指令的用法
12.NOP(空操作)指令
NOP指令是空操作指令,指令后没有软元件。执行NOP指令不做任何操作,但占用步序。编写程序时,加入一些NOP指令,可减少修改程序时步序号的变化。若用NOP指令替换程序中的某一指令,会改变电路的结构,使用时一定要注意。
13.END(程序结束)指令
END指令用于程序的结束,指令后没有软元件。
PLC以扫描方式执行程序,执行到END指令时,扫描周期结束,再进行下一个周期的扫描。END指令后面的程序不执行。
调试程序时,常常在程序中插入END指令,将程序进行分段调试。
14.INV指令
INV指令用于将执行INV指令之前的运算结果取反,INV指令后无软元件。INV指令只能在与AND、ANI、ANDP、ANDF指令相同位置处编程。
INV指令的用法编程示例如图2-22所示。
图2-22 INV指令的用法编程示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。