三菱PLC指令详解
1
取指和输出指令(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;
2
触点系列说明(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 称为连续输出。
3
触点并联指令(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;
4
块操作指令(ORB/ANB)
ORB(块或指令)
1)用于两个或多个串联触点的电路之间的并联连接;
ORB指令的使用说明:
1)当多个串联电路块并联时,应在每个串联电路块的开头使用LD或LDI指令;
2)有多个电路块并联。如果每个电路块都使用ORB指令,则并行电路块的数量没有限制;
3)ORB指令也可以连续使用,但不推荐这种程序编写方法。 LD或LDI指令的使用次数不得超过8次,即ORB只能连续使用少于8次;
ANB(块和指令)
1)用于两个或多个触点并联的电路之间的串联;
ANB指令使用说明:
1) 当并联电路块串联时,在并联电路块的开头使用LD 或LDI 指令;
2) 当多个并联电路块依次与前一个电路串联时,ANB 指令的使用次数没有限制。 ANB也可以连续使用,但与ORB一样,使用次数少于8次;
5
设置和复位指令(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可以多次使用,顺序可以任意,但最后一个执行器有效;
6
微分指令(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相同;
7
主控命令(MC/MCR)
1)MC(主控命令)用于公共串联触点的连接。执行MC后,左母线移至MC触头后方;
2)MCR(Master Control Reset Command)是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指令,从编号较大的嵌套层开始;
8
堆栈指令(MPS/MRD/MPP)
堆栈指令是FX系列中新增的基本指令,用于多路输出电路,给编程带来方便。 FX系列PLC中有11个存储单元,专门用于存储程序运算的中间结果,称为堆栈存储器。
1)MPS(入栈指令)将运算结果发送到栈内存的第一段,同时将之前发送的数据移动到栈的下一段;
2)MRD(栈读指令)读取栈内存中的第一段数据(最后压入栈的数据)并且数据继续存放在栈内存的第一段中,栈中的数据不不动;
3)MPP(出栈命令)从栈内存中读取第一条数据(最后入栈的数据)并且该数据从栈中消失,同时将栈中的其他数据依次向上移动;
堆栈指令的使用说明:
1)堆栈指令没有目标组件;
2)MPS和MPP必须成对使用;
3)由于栈存储单元只有11个,所以栈层数最多可达11层;
9
逻辑取反、无操作和结束指令(INV/NOP/END)
1)INV(取反指令) 执行该指令后,将原运算结果取反。反向指令的使用如图10所示。如果X0断开,则Y0为ON,否则Y0为OFF。使用时请注意,INV不能像指令表中的LD、LDI、LDP、LDF指令那样连接到总线上,也不能像指令中的OR、ORI、ORP、ORF指令那样单独使用列表;
2)NOP(无操作指令)不执行操作,但占用一个程序步。执行NOP 时什么也不做。有时NOP指令可用于短路某些触点或NOP指令可用于覆盖不必要的指令。当PLC执行清除用户存储器操作时,用户存储器的内容全部变为空操作指令;
3)END(结束命令)表示程序结束。如果程序末尾没有写END指令,则无论实际用户程序有多长,PLC都会从用户程序存储器的第一步到最后一步执行;如果有END指令,当扫描到END时,程序执行结束。这样就缩短了扫描周期。
调试程序时,可以在程序中插入多条END指令,将程序分成若干段。确认前面的程序段正确后,依次删除END指令,直至调试完成;
10
FX系列PLC步进指令
1)步进指令(STL/RET) 步进指令是专门为顺序控制而设计的指令。在工业控制领域,许多控制过程都可以通过顺序控制来实现。采用步进指令实现顺序控制,既方便实现,又易于阅读和修改。
FX2N中有两种步进指令:STL(步进触点指令)和RET(步进返回指令)。
STL和RET指令只有与状态装置S配合时才具有步进功能。例如STL S200代表常开触点,称为STL触点。其在梯形图中的符号为-|| ||-,无常闭触点。
我们使用每个状态设备S来记录一个工作步骤。例如STL S200有效(ON),则进入S200所代表的步骤(类似于本步骤的主开关),开始执行本阶段要做的工作,并判断进入下一步。是否满足某一步骤的条件。
一旦本步骤结束信号为ON,则关闭S200并进入下一步,例如步骤S201。 RET指令用于复位STL指令。执行RET后,将返回总线并退出单步状态。
1)状态转移图
顺序控制过程可以分为几个阶段,也称为步骤或状态,每个状态有不同的动作。当两个相邻状态之间的转移条件满足时,就会实现转移,即执行从前一个状态到下一个状态的转移。
我们经常使用状态转移图(功能图)来描述这个顺序控制过程。用状态器S记录各个状态,X为转移条件。例如,当X1为ON时,系统从S20状态变为S21状态。
状态转移图中的每一步都包含三个内容:该步驱动的内容、转移条件以及指令的转换目标。
该步驱动Y0。当X1有效ON时,系统由S20状态转变为S21状态。 X1是转换条件,转换目标是S21步骤。
西门子PLC指令详解
指令(英文全称):指令含义
1. LD(负载):动、合触点
2. LDN(Load Not):断开触点
3、A(And与动合):用于动、合触头串联
4、AN(And Not和动断):用于动断触头串联
5、O(Or或动、合):用于动、合触头并联
6、ON(或Not或动断):用于动断触头并联
7.=(Out 输出):用于线圈输出
8. OLD(或矿脉):块或
9. ALD(和矿脉):块和
10. LPS(Logic Push):逻辑压入栈
11、LRD(Logic Read):逻辑读堆栈
12. LPP(逻辑流行音乐):逻辑流行音乐
13. NOT(不):不
14. NOP(No Operation Performed):无操作
15、AENO(与ENO):命令盒的输出端ENO进行AND运算
16. S(设置):设置为1
17. R(重置、清除):清除
18. P(正):上升沿
19. N(负):下降沿
20. TON(On_Delay Timer):接通延迟定时器
21. TONR (Retentive On_Delay Timer):内存接通延迟定时器
22. TOF(Off_Delay Timer):关断延时定时器
23. CTU(Count Up):加计数器
24. CTD(Count Down):减计数器
25. CTDU(Count Up/Count Down):向上/向下计数器
26. ADD(加加):添加注意
//ADD_I(_I代表整数)
ADD_DI(DI代表双字节整数)
ADD-R(R代表实数)
它们都是加法运算,但数字的大小不同。
27. SUB(减法,减少):减去
28. MUL(倍数):乘法
29. DIV(除法):除法
30.SQRT(平方根):求平方根
31. LN(Napierian Logarithm):求自然对数
32. EXP(指数索引):求指数
33. INC_B(增量):增加1
//其中_B代表数据类型,W(字节),DW双字都是这样。
34. DEC_B(减量减少):负1
35. WAND_B(字和命令):逻辑与
36. WOR_B(字或命令):逻辑或
37. WXOR_B(字异或异或命令):逻辑异或
38. INV_B(逆):求反
39. MOV _B(移动):数据传输
40. BLKMOV_B(块移动):数据块传输
41. SWAP(Swap交换):字节交换
42. FILL(填充):单词填充
43. ROL_B(Rotate Left):循环左移
44. ROR_B(Rotate Right):循环右移
45. SHL_B(Shift Left 向左移动):向左移动
46.SHR_B(右移):右移
47. SHRB(Shift buffer移动缓冲区):寄存器移位
48. STOP(停止):暂停
49. END /MEND(结束/Mend):有条件/无条件结束
50.WDR(Watchdogreset):看门狗复位
51. JMP(跳跃):跳跃
52. LBL(标签位置):跳转标签
53. FOR(For循环):循环
54. NEXT(下一个):循环结束
55.SBR(Subprogram Regulate 子程序控制):子程序调用
56. SBR_T(子程序调节取):带参数的子程序调用
57. SCR(顺序控制):步进启动
58. SCRT(Sequence Control Transfer):步进转移
59. SCRE(顺序控制结束):步骤结束
60. AD_T_TBL(Add data to table):填写数据表
61. FIFO(First in First out):先进先出
62. LIFO(后进先出):后进先出
63. TBL_FIND(Table Find 表搜索):表搜索
64. BCD_I(Binary Coded Decimal_I 二进制编码十进制):BCD 码转整数
65、I_BCD(I_Binary Coded DecimaL):将整数转换为BCD码
66. B_I(Bit to int):字节转整数
67. I_B(int to bit):整数转字节
68. DI_I(Double int to int):双整数转整数
69. I_DI(int to double int):整数转双整数
70. ROUND(舍入):将实数转换为双整数
71. TRUNC(Trunc截取):转换32位实数的整数部分(四舍五入小数)
72. DI_I(double int to int):将双精度整数转换为实数
73. ENCO(Encode编码):编码
74.DECO(Decode解码):解码
75. SEG(Segment Decoder):七段显示解码器
76. ATH(ASCII码转十六进制):ASCII码转十六进制
77. HTA(Hexadecimal to ascii):十六进制转ASCII码
78. ITA(//int to ascii):将整数转换为ASCII码
79. DTA ( //double int to ascii ): double int 转ASCII 码
80. RTA(//实数转ascii):实数转ASCII码
81. ATCH(//attach):中断连接
82.DTCH(Depatch):中断分离
83.HDEF(高速计数器定义):高速计数器定义
84、HSC(高速计数器):启动高速计数器
85. PLS(Pulse脉冲):脉冲输出
86. READ_RTC(读取实时时钟):读取实时时钟
87. SET_RTC(设置实时时钟):写实时时钟
88. XMT(发射器):免费发送
89. RCV(Receive):免费接收
90.NETR(Net read):网络阅读
91. NETW(网络写入):网络写入
92. GET_ADDR(获取地址):获取端口地址
93. SET_ADDR(设置地址):设置端口地址
94、PID(Proportional Integral Differential):比例积分微分调节器。
向下拖动查看全部
看完以上三菱、西门子PLC的使用说明,您是不是感觉恍然大悟呢?
该指令表共有246条指令,包括FX0N指令、FX1S指令、FX1N指令、FX2N指令、FX3NC指令等。
编辑:何安