表格指令包括填表指令、查表指令、先进先出提令、后进先出指令和存储区填充指令。
填表指令
1.指令说明
填表指令说明如表6-45所示。
表6-45 填表指令说明
2.指令使用举例
填表指令的使用如图6-26 所示,在PLC上电运行时,SM0.1触点接通一个扫描周期,MOV_W指令执行,将“6”送入VW200单元中(用来定义表的最大格数);当I0.0触点闭合时,上升沿P触点接通一个扫描周期,ATT(AD_T_TBL)指令执行,由于VW200单元中的数据为6,ATT指令则将VW200~VW214共8个单元定义为表。其中,第3~8共6个单元(VW204~VW214)定义为表的填表区,第1单元(VW200)为填表区最大格数,第2单元(VW202)为填表区实际使用格数,如果先前表的第2单元VW202中的数据为0002,指令认为填表区的两个单元V204、V206已填入数据,会将VW100中的数据填入后续单元VW208中,同时VW202单元数据自动加1,变为0003。如果I0.0触点第二次闭合时VW100中的数据仍为1234,则ATT指令第二次执行后,1234则被填入VW210单元,VW202中的数据会自动变为0004。
图6-26 填表指令的使用
当表的第2单元的数值(实际使用格数)等于第1单元的数值(表最大格数)时,如果再执行ATT指令,表出现溢出,会使SM1.4=1。
查表指令
1.指令说明
查表指令说明如表6-46所示。
表6-46 查表指令说明
2.指令使用举例
查表指令的使用如图6-27所示,当I0.0触点闭合时,执行FND指令,从VW202为首地址单元的表中查找数据等于3130(由CMD和PTN设定的条件)的单元,再将查找到的满足条件的单元编号存入AC1中。
图6-27 查表指令的使用
如果要从表的0单元开始查表,在执行FND指令查表前,应用有关指令将AC1置0;执行FND指令后,AC1中存放的为第1个满足条件的单元编号。如果需要查表的剩余单元,在再次执行FND指令前,须将AC1的值加1,当查到表的最后单元没有找到符合条件的单元时,AC1的值变为EC值(实际填表数)。
FND指令的TBL端指定单元存放的是实实际使用填表数,而ATT指令的TBL端指定单元存放的是最大填表数,因此,如果要用FND指令查ATT指令建立的表,FND指令的TBL端指定单元应较ATT指令高2字节。
先进先出和后进先出指令
1.指令说明
先进先出和后进先出指令说明如表6-47所示。
表6-47 先进先出和后进先出指令说明
2.指令使用举例
先进先出指令的使用如图6-28所示,当I0.0触点闭合时,执行FIFO指令,将VW200为首地址的表中第一个数据移到VW400单元,如果FIFO执行前表中第一个数据为5431,则FIFO指令执行后,5431被移到VW400中;表中第二个及后续数据(8942、1234)会依次上移一个单元,同时表的实际填表数(VW202单元中的数)会减1,由0003变为0002。
图6-28 先进先出指令的使用
后进先出指令的使用如图6-29所示,当I0.1触点闭合时,执行LIFO指令,将VW200为首地址的表中最后一个数据移到VW300单元,如果LIFO执行前表中最后一个数据为1234,则LIFO指令执行后,1234被移到VW300中,表的实际填表数(VW202单元中的数)会减1,由0003变为0002。
如果试图从空表中移走数据,会使SM1.5=1。
图6-29 后进先出指令的使用
存储区填充指令
1.指令说明
存储区填充指令说明如表6-48所示。
表6-48 存储区填充指令说明
2.指令使用举例
存储区填充指令的使用如图6-30所示,当I0.1触点闭合时,FILL指令执行,将IN端指定的数据0填充到VW200为首地址(OUT端指定)的10个(N端指定)连续字单元中,结果VW200、VW202~VW218共10个单元中的数据全部为0。
图6-30 存储区填充指令的使用
-
plc
+关注
关注
5010文章
13277浏览量
463141 -
指令
+关注
关注
1文章
607浏览量
35696
原文标题:PLC表格指令
文章出处:【微信号:PLC与自控设备,微信公众号:PLC与自控设备】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论