登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:【跟着我一起来学习s7-200】33表指令

点击:1531 回复:10

  除了通信指令外,前面我们已经基本把所有指令讲完了,就只剩下表指令了,那么今天我们就学习最后一部分指令,表指令。我们的表指令有后进先出LIFO指令、先进先出FIFO指令、填表指令AD_T_TBL、存储区填充指令FILL_N和查表指令TBL_FIND。
附件 1.jpg
  那么什么是表呢,表它其实就是一段存储区域。一个表最多只能有100条数据,每个数据都是16位的。如果表溢出了,SM1.4会被置为1。我们要注意的是一个表中,首地址表示的是这个表的最大数据条数,第二个地址表示的是当前数据条数,从第三个地址往下,才是实际数据。
   我们要注意的是要建立表格,首先要为表的最大条目数建立一个条目。如果没有这样做,那么是无法在表格中建立任何条目的。
   下面我们先看一下后进先出LIFO指令的使用。
附件 2.jpg
  所以,LIFO指令是将表格中的最后一个条目移至输出内存地址,每次执行指令时,表格中的条目数减1。
   下面我们再看一下先进先出FIFO指令的使用。
附件 3.jpg
  所以,FIFO指令是将表格中的第一个条目移至输出内存地址,表格中的所有其他条目均向上移动一个位置。每次执行指令时,表格中的条目数减1。
   下面我们再看一下填表指令AD_T_TBL的使用。
附件 4.jpg
  所以,填表指令AD_T_TBL指令是向表格(TBL)中加入字值(DATA),新数据被增加至表格中的最后一个条目,每次向表格中增加新数据后,条目计数加1。我们要注意的是表格最多只可以有100个条目,不包括指定最大条目数和实际条目数这两个条目。如果过度填充表格的话,SM1.4会被置为1。
   下面我们再看一下存储区填充指令FILL_N的使用。FILL指令是把包含在地址IN中的数据写入到从地址OUT开始N个连续字地址中。要注意的是数据类型是为字的,且N的范围是1至255。
附件 5.jpg
  那么以上的程序其实就是把VW0、VW2、VW4……VW20清零。
   下面我们再看一下查表指令TBL_FIND的使用。TBL_FIND指令是在表格(TBL)中搜索符合一定规则的数据。从INDX开始搜索表,寻找符合PTN和CMD的数据。CMD被指定一个1至4的数值,分别代表 =、<>、<、>。如果找到符合条件的数据,那么INDX指向表格中该数的位置。
附件 6.jpg
  以上程序就是当I0.0接通时,在表格中搜索等于3130的十六进制数。
   那么今天主要就学习了这个表指令。对于表指令也是比较少会用到,我们有个了解就可以了。
14-11-24 11:10
这个少用.
14-11-24 12:13
虽然表指令用的少,但是,了解总比不知道好。谢谢蔡老师。
14-11-24 23:27
这个很好,偶学习了。
14-11-25 08:30
向老师来报道
14-11-25 15:27
学习了。
14-11-25 16:15
填表指令我们一直用的,可惜200快被1200淘汰了
14-11-25 17:02
谢谢老师 学习来了
14-11-25 18:58
向老师学习来了
14-11-28 09:39
   类同于堆栈指令。
14-11-28 10:03

上一页下一页

工控新闻

更多新闻资讯