4.11 表功能指令
4.11.1 填表指令
(1)填表指令格式和功能
填表指令格式和功能如表4-66所示。
表4-66 填表指令格式和功能
(2)例说填表指令
如图4-84所示:
图4-84 填表指令
① 第一次扫描时,将最大填表数5装载到VW100,说明此表格最多可容纳5个条目,不包括VW100和VW102。
② 假设在填表指令执行之前表格中已经有两个数据“5432”和“8956”,所以存放实际填表数(EC)的单元VW102中数据为“0002”。
③ 当I0.0接通时,执行填表指令,将VW50中数值“1234”添加到VW100表格中数据0和数据1的下面,同时,实际填表数EC加1(0003)。
4.11.2 取表指令
(1)取表指令格式和功能
取表指令格式和功能如表4-67所示。
表4-67 取表指令格式和功能
(2)例说先进先出指令
① TBL指定的地址为VW100,说明表格的首地址为VW100。在取表指令执行之前表中共存放3个数据,所以实际填表数EC为“0003”,如图4-85所示。
图4-85 先进先出指令
② 当I0.2闭合时,执行先进先出指令(FIFO)。将表格(TBL)中的第一个条目“5432”移出,并将其存入DATA指定的地址(VW200)中。同时,表格中的其他数据均向上移动一个地址。表格实际填表数减1。
(3)例说后进先出指令
① TBL指定的地址为VW100,说明表格的首地址为VW100。在取表指令执行之前表中共存放3个数据,所以实际填表数EC为“0003”,如图4-86所示。
图4-86 后进先出指令
② 当I0.1闭合时,执行后进先出指令(LIFO)。将表格(TBL)中的最后一个条目“2321”移出,并将其存入DATA指定的地址(VW200)中。同时,表格实际填表数减1。
4.11.3 查表指令
(1)查表指令格式和功能
查表指令格式和功能如表4-68所示。
表4-68 查表指令格式和功能
说明:查表指令与填表指令、后进先出取表指令和先进先出取表指令生成的表格配合使用时,实际填表数和数据条目数直接对应。
填表指令、后进先出取表指令和先进先出取表指令需要表示最大填表数的字,而查表指令不需要表示最大填表数的字。其差别如图4-87所示。
图4-87 表指令生成的表格比较
因此,应将查表指令的TBL操作数的地址设置得比相应的填表指令、后进先出取表指令和先进先出取表指令的TBL操作数高一个字(两个字节)。例如,填表指令创建的表格首地址为VW100,查表指令的TBL则为VW102。
(2)例说查表指令
① 命令参数(CMD)的取值为1~4的常数,分别代表=、<>、<和>。
② 先将表格条目AC1设为0,当I0.1接通时,使表格从顶端开始查找一个等于16#2002的数据,查到数据2时,满足条件,则AC1为2。
③ 如果还要接着查找下一个匹配条目,则在再次调用查表指令之前,必须先使INDX增加1。查找到数据4为匹配的数据,则AC1为4。
④ 同样,如果还要接着查找,必须先使INDX再增加1。如果未找到匹配条目,则INDX值等于实际填表。一个表格最多可有100个数据条目。数据条目(搜索区域)编号为0~99(最大值)。
⑤ 如果要重新搜索,则要令INDX为0,从头开始。如图4-88所示。
图4-88 查表指令
4.11.4 存储器填充指令
(1)存储器填充指令格式和功能
存储器填充指令格式和功能如表4-69所示。
表4-69 存储器填充指令格式和功能
(2)例说存储器填充指令
如图4-89所示,当I2.1接通时,该指令将从地址VW200开始的10个连续字地址,即VW200~VW218用0进行填充。
图4-89 存储器填充指令