在s7—200 plc指令系统中,一个表由表地址(表的首地址)指明。表地址和第二个字地址所对应的单元分别存放两个表参数(最大填表数tl和实际填表数ec),之后是最多100个填表数据,表只对字型数据存储。包括表存数指令、表取数指令、表查找指令。
一、表存数指令
表只对字型数据存储,表的格式如下表所示。
图1 表的格式
att,表存数指令
该指令在梯形图中有2个数据输入端:data为数值输入,指出将被存储的字型数据或其地址;tbl表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加到指定的表格中。
表存数时,新存的数据添加在表中最后一个数据的后面。每向表中存一个数据,实际填表数ec会自动加1。
图2 指令att执行结果
二、表取数指令
1、fifo,先进先出指令
当使能输入有效时,从tbl指明的表中移出第一个字型数据并将其输出到data所指定的字单元。
取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数ec会自动减1。
指令格式: fifo tbl, data 。
例: fifo vw100, ac0
图3 fifo先进先出指令
图4 指令fifo执行结果
2、lifo,后进先出指令
当使能输入有效时,从tbl指明的表中移出最后一个字型数据并将其输出到data所指定的字单元。
取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数ec会自动减1。
指令格式: lifo tbl, data
例: lifo vw100, ac0
图5 lifo后进先出指令
图6 指令lifo执行结果
三、表查找指令:fnd?
通过表查找指令可以从字型数表中找出符合条件的数据所在的表中数据编号,编号范围为0~99。
在梯形图中有4个数据输入端:tbl表格的首地址,用以指明被访问的表格;ptn是用来描述查表条件时进行比较的数据;cmd是比较运算符“?”的编码,它是一个1~4的数值,分别代表=、<>、<和>运算符;indx用来指定表中符合查找条件的数据的地址。
图7 表查找指令
图8 表查找指令执行结果