在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
通过以上程序实现控制删除,也就是根据要删除的位置,将后面的数据直接向前移动一次就可以了。
提问者对于答案的评价:
谢谢回答