表格指令

S7-200 SMART表格指令按照使用流程可分为

建表(存储器填充FILL)--->填表(增加至表格ATT)--->查询(表格查找TBL)--->先入先出(FIFO) 或后入先出(LIFO)

下图所示为表格指令图示:

LAD STL 指令名称 注释
FILL,IN,OUT,N 存储器填充 存储器填充指令使用地址IN中存储的字值填充从地址OUT开始的N个连续字。
N的取值范围是1到255。
ATT DATA,TBL 填表 向表格(TBL)中加入字值(DATA)。
表格中第一个数值为最大条目数TL,第二个数值为实际条目数EC。
FND=TBL,PTN,INDX
FND<>TBL,PTN,INDX
FND>TBL,PTN,INDX
FND<TBL,PTN,INDX
查表 在表格(TBL)中搜索与某些标准相符的数据。

LIFO TBL,DATA

FIFO TBL,DATA

后入先出
先入先出

将表格中的最新(或最后)一个条目移至输出内存地址。

注意:

  • 一个表格最多有100个数据条目(不包含最大条目数和实际条目数)
  • 所有的表格读取和写入指令都必须用上升沿或下降沿指令触发激活。

    表格指令的应用

    1.创建表格,表格包含20个条目,从存储器位置4开始。(在第一次扫描时,定义表格的最大长度)

    下图是创建的一个表格,其中VW0为表格最大长度,VW2为当前条目数,VW4~VW42为存储在条目内的数据

    2. 通过输入I0.0复位表格。在I0.0的上升沿,使用“+0”填充从VW2开始的存储单元。

    使用该指令后,将表格当前条目数清零,同时将VW2~VW42原有条目数据清零。

    3.通过输入I0.1将值写入表格。在I0.1的上升沿,将存储单元VW100的值复制到表格。

    通过添加表格指令,将VW100中的数据添加到表格中,此时当前条目数变为1,同时第一个条目VW4中数据赋值为1。

    通过填表指令,依次填满表格中的20个条目。

    4.在I0.2的上升沿,将表中的最后一个值移入VW102。

    通过执行先入后出指令,将表内最后一个数据条目VW42移入到VW102。移出后,当前条目数由20变为19。

    5.在I0.3的上升沿,将表中的第一个值移入VW104。

    在执行FIFO先入先出指令之前VW2=19,将表内第一个数据条目VW4移入到VW104,此时条目前移,同时当前条目数VW2由19变为18,操作执行完以后,结果如下图所示:


    6.在表中搜索值为10的第一个位置。在I0.4的上升沿,复原索引指针。查找等于10的表格条目。

    通过查找指令,查找表格内数据为10的条目,执行该指令后,指向条目内第8个条目数据符合查找条件(数据条目搜索编号从0开始)。

    表格指令例程

    例程所需条件:

    1、软件版本:STEP 7-Micro/WIN SMART V2.3

    2、SMART CPU固件版本:V1.0及以上

    3、通讯硬件:TP电缆(以太网电缆)

    所实现的功能:

    以下是上文提到的各表格指令的使用,具体说明参考程序注释

    Table

    注意:本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。