当前位置: 主页 > PLC控制

关于S7-300的表指令

S7-300中,有填表指令、先进先出表指令,不知是否有可以删除表中数据的指令,例如,如果原来的表是
DB1.DBW05
DB1.DBW21
DB1.DBW42
DB1.DBW63
DB1.DBW84
DB1.DBW105
执行表中删除数据的指令后,例如要删除DB1.DBW6的数据,表的数据变为
DB1.DBW04
DB1.DBW21
DB1.DBW42
DB1.DBW64
DB1.DBW85
DB1.DBW100
如果没有这样的指令,编写程序应该如何编?

ASs='html_titleimg_p' STyle='text-align:CEnter;'>

问题补充:
我认为用fifo指令没有用,如果只是删除第一个数据,用一次fifo指令就可以,如果是删除第二个数据,用两次fifo指令肯定不对,因为这样表中的第一个数据也删除了,而且显示表格中已输入的条目数也不对。按理我只是删除一个数据,这样执行两次操作后,表格中已输入的条目数实际是减了2,所得到的表格与自己想要得到的表格不对.

最佳答案

最好用语句表来编程,指定几个形参,一个是删除的位置,一个是总长度,然后用指针的方式来实现编程。如:

in:delwz:int
long:int

ldelwz
slw4
lar1
oPNdb1
llong
ldelwz
-i
a1:tmw10
lw[ar1,p#2.0]
tw[ar1,p#0.0]
+ar1p#2.0
loopa1
通过以上程序实现控制删除,也就是根据要删除的位置,将后面的数据直接向前移动一次就可以了。

提问者对于答案的评价:
谢谢回答

  • 关注微信

猜你喜欢

微信公众号