01 取指令和输出指令(LD/LDI/LDP/LDF/OUT)
1) LD(取指指令) 将常开触点连接到左总线的指令。该指令用于以常开触点开始的每条逻辑线。
2) LDI(负指令) 将常闭触点连接到左总线的指令。该指令用于以常闭触点开始的每条逻辑线。
3)LDP(获取上升沿命令) 连接到左总线的常开触点的上升沿检测命令仅在指定定位元件的上升沿(从OFFON)时接通一个扫描周期。
4) LDF(取下降沿命令) 连接到左总线的常闭触点的下降沿检测命令。
5)OUT(输出命令) 驱动线圈的命令也称为输出命令。
取指令和输出指令的使用说明:
1)LD、LDI指令可用于输入连接到左总线的触点,也可与ANB、ORB指令配合使用,实现块逻辑运算;
2) LDP、LDF 指令仅在相应元件有效时维持一个扫描周期;
3)LD、LDI、LDP、LDF指令的目标元件为X、Y、M、T、C、S;
4) OUT 指令可以连续使用多次(相当于线圈并联)。对于定时器和计数器,应在OUT指令之后设置常数K或数据寄存器;
5) OUT 指令的目标元件为Y、M、T、C、S,但不能用于X。
02 块操作指令(ORB/ANB)
1) ORB(块或指令)用于两个或多个串联触点的电路之间的并联连接。
2)ANB(块和指令)用于两个或多个并联触点的电路之间的串联。
ORB指令的使用说明:
1)当多个串联电路块并联时,应在每个串联电路块的开头使用LD或LDI指令;
2)有多个电路块并联。如果对每个电路块使用ORB指令,则并行电路块的数量没有限制;
3)ORB指令也可以连续使用,但不推荐这种程序编写方法。 LD 或LDI 指令的使用次数不得超过8 次,即ORB 连续使用次数只能少于8 次。
ANB指令使用说明:
1) 当并联电路块串联时,在并联电路块的开头使用LD 或LDI 指令;
2) 当多个并联电路块依次与前一个电路串联时,ANB 指令的使用次数没有限制。 ANB也可以连续使用,但与ORB一样,使用次数限制在8次以下。
03 触点并联指令(OR/ORI/ORP/ORF)
1)OR(或指令)用于单个常开触点并联,实现逻辑“或”运算。
2)ORI(或not指令)用于单个常闭触点并联,实现逻辑“或”运算。
3) ORP上升沿检测并联指令。
4)ORF下降沿检测并联指令。
触点并联使用说明:
1)OR、ORI、ORP、ORF指令均指单触点并联。并联触点的左端连接LD、LDI、LDP或LPF,右端连接上一条指令对应触点的右端。触点并联指令连续使用次数没有限制;
2) OR、ORI、ORP、ORF指令的目标成分为X、Y、M、T、C、S。
04 触点系列指令(AND/ANI/ANDP/ANDF)
1)AND(与指令)串联一个常开触点,完成逻辑“与”运算。
2)ANI(与与负指令)串联一个常闭触点,完成逻辑与非运算。
3)ANDP上升沿检测串联指令。
4) ANDF 下降沿检测串联指令。
接触器系列使用说明说明:
1)AND、ANI、ANDP、ANDF均指单个触点串联指令。串联数量不受限制,可重复使用。
2)AND、ANI、ANDP、ANDF的目标元素为X、Y、M、T、C、S。
3) OUT M101 指令后,通过T1 接点驱动Y4 称为连续输出。
05 设置和复位指令(SET/RST)
1)SET(设置命令) 其功能是设置和维护正在操作的目标元件。
2)RST(复位指令)将被操作的目标部件复位并保持在清除状态。
使用SET和RST指令,当X0常开且接通时,Y0变为ON状态并保持该状态。即使X0断开,Y0的ON状态也保持不变;只有当X1的常开闭合时,Y0才变为OFF状态并保持。即使X1常开断开,Y0仍处于OFF状态。
SET和RST指令的使用说明:
1)SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V、Z。RST指令常用于清除D、Z、V的内容,也用于复位累计定时器和计数器。
2)对于同一个目标组件,SET和RST可以任意顺序多次使用,但最后一个执行器有效。
三菱PLC指令集
06 主控命令(MC/MCR)
1)MC(主控命令)用于公共串联触点的连接。执行MC 后,左母线移动到MC 触点后面。
2)MCR(主控复位命令)是MC命令的复位命令,即MCR命令用于恢复原来的左总线位置。
在编程中,经常会出现一个或一组触点同时控制多个线圈的情况。如果在每个线圈的控制电路中串联相同的触点,将会占用大量的存储单元。这可以通过使用主控命令来解决。这个问题。
MC、MCR指令利用MC N0 M100将左总线向右移动,使Y0、Y1都受控于原来的左总线状态。如果X0 断开,则MC 和MCR 之间的指令将被跳过并向下执行。
MC、MCR指令使用说明:
1) MC、MCR指令的目标元件为Y、M,但不能使用特殊辅助继电器。 MC占用3个程序步,MCR占用2个程序步;
2)主控接点与梯形图中的普通接点垂直。主控触头是连接到左母排的常开触头,是控制一组电路的总开关。与主控接点连接的接点必须使用LD或LDI指令。
3) 当MC 指令的输入接点断开时,MC 和MCR 内的累积定时器、计数器和复位/置位指令驱动的部件保持原来的状态。非累加定时器和计数器、由OUT 指令驱动的组件将被复位。当22中X0断开时,Y0和Y1将变为OFF。
4) 如果在一个MC 指令区内再次使用MC 指令,则称为嵌套。嵌套层数最大为8层,嵌套层数按照N0N1N2N3N4N5N6N7的顺序递增。每层的返回都使用相应的MCR指令,从编号较大的嵌套层开始。
07 微分指令(PLS/PLF)
1)PLS(上升沿微分指令)在输入信号的上升沿产生一个扫描周期的脉冲输出;
2)PLF(下降沿微分指令)在输入信号的下降沿产生一个扫描周期的脉冲输出。
使用微分指令检测信号的边沿,并通过置位和复位命令控制Y0的状态。
PLS和PLF指令的使用说明:
1)PLS和PLF指令的目标分量为Y和M;
2)使用PLS时,驱动输入ON后,目标元件仅在1个扫描周期内ON,且X0的常开触点由OFF到ON时,M0仅在1个扫描周期内ON;使用PLF指令时,只需使用输入信号的下降沿驱动即可,其他与PLS相同。
08 逻辑取反、空操作和结束指令(INV/NOP/END)
1)INV(取反指令)执行该指令后将原来的运算结果取反。反向指令的使用如图10所示。如果X0断开,则Y0为ON,否则Y0为OFF。
2)NOP(无操作指令)不执行操作,但占用一个程序步。执行NOP 时什么也不做。有时NOP指令可用于短路某些触点或NOP指令可用于覆盖不必要的指令。当PLC执行清除用户存储器操作时,用户存储器的所有内容变为空操作指令。
3)END(结束命令)表示程序结束。如果程序末尾没有写END指令,则无论实际用户程序有多长,PLC都会从用户程序存储器的第一步到最后一步执行;如果有END指令,当扫描到END时,程序执行结束。这样就缩短了扫描周期。
调试程序时,可以在程序中插入多条END指令,将程序分成若干段。确认前面的程序段正确后,依次删除END指令,直至调试完成。
09堆栈指令(MPS/MRD/MPP)
堆栈指令是FX系列中新增的基本指令,用于多路输出电路,给编程带来方便。 FX系列PLC中有11个存储单元,专门用于存储程序运算的中间结果,称为堆栈存储器。
1)MPS(入栈指令)操作的结果发送到栈内存的第一段,之前发送的数据依次移到栈的下一段。
2)MRD(读堆栈指令)读取堆栈存储器中的第一段数据(最后压入堆栈的数据),并且数据继续存储在堆栈存储器的第一段中。堆栈中的数据不会移动。
3)MPP(出栈指令)读取堆栈内存中的第一个数据(进入堆栈的数据),该数据从堆栈中消失,堆栈中的其他数据依次向上移动。
堆栈指令的使用说明:
1)堆栈指令没有目标组件;
2)MPS和MPP必须成对使用;
3)由于堆栈只有11个存储单元,因此堆栈最多可以有11层。
10FX系列PLC步进指令
步进指令是为顺序控制而设计的指令。在工业控制领域,许多控制过程都可以通过顺序控制来实现。采用步进指令实现顺序控制,既方便实现,又易于阅读和修改。
FX2N中有两种步进指令:STL(步进触点指令)和RET(步进返回指令)。
STL和RET指令只有与状态装置S配合才具有步进功能。我们用每个状态装置S来记录一个工作步骤。例如,STL S200有效(ON),则进入S200代表的步骤,开始执行本阶段要做的工作,并判断是否满足进入下一步的条件。
一旦本步骤结束信号为ON,则关闭S200并进入下一步,例如步骤S201。 RET指令用于复位STL指令。执行RET后,将返回总线并退出单步状态。
2.状态转移图
顺序控制过程可以分为几个阶段,也称为步骤或状态,每个状态有不同的动作。当两个相邻状态之间的转移条件满足时,就会实现转移,即执行从前一个状态到下一个状态的转移。
我们经常使用状态转移图来描述这个顺序控制过程。用状态器S记录各个状态,X为转移条件。例如,当X1为ON时,系统从S20状态变为S21状态。
状态转移图中的每一步都包含三个内容:该步驱动的内容、转移条件以及指令的转换目标。
该步驱动Y0。当X1有效ON时,系统由S20状态转变为S21状态。 X1是转换条件,转换目标是S21步骤。
3、步骤指令使用说明
1) STL 触点是连接到左侧母排的常开触点。当STL触点接通时,对应的状态为有效步;
2)与STL接点相连的接点应用LD或LDI指令,只有执行RET后才返回左总线;
3)STL触点可直接驱动或通过其他触点驱动Y、M、S、T等元件的线圈;
4)STL触点驱动电路块中不能使用MC、MCR指令,但可以使用CJ指令;
5)由于PLC只执行当前步对应的电路块,因此使用STL指令时允许双线圈输出(顺控程序可以在不同步中多次驱动同一个线圈);
6) STL指令不能在中断程序和子程序中使用。
审稿人:李茜