欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:5分 | 解决时间:2014-08-24 11:02
产品版区:
SIMATIC S7-300(F)/S7-400(F/H/FH)
zenchangping
zenchangping - 初级技术员  第5级
在S7-300中,有填表指令、先进先出的表指令,不知是否有可以删除表中数据的指令,例如,如果原来的表是
DB1.DBW0 5
DB1.DBW2 1
DB1.DBW4 2
DB1.DBW6 3
DB1.DBW8 4
DB1.DBW10 5
执行表中删除数据的指令后,例如要删除DB1.DBW6的数据,表的数据变为
DB1.DBW0 4
DB1.DBW2 1
DB1.DBW4 2
DB1.DBW6 4
DB1.DBW8 5
DB1.DBW10 0
如果没有这样的指令,编写程序应该如何编?
问题补充:
我认为用fifo指令没有用,如果只是删除第一个数据,用一次fifo指令就可以,如果是删除第二个数据,用两次fifo指令肯定不对,因为这样表中的第一个数据也删除了,而且显示表格中已输入的条目数也不对。按理我只是删除一个数据,这样执行两次操作后,表格中已输入的条目数实际是减了2,所得到的表格与自己想要得到的表格不对.
小程序:
最佳答案
in:delwz: int
long:int
l delwz
slw 4
lar1
opn db1
l long
l delwz
-i
a1:t mw10
l w[ar1,p#2.0]
t w[ar1,p#0.0]
+ar1 p#2.0
loop a1
通过以上程序实现控制删除,也就是根据要删除的位置,将后面的数据直接向前移动一次就可以了。
回答者:
自控龙龙
回答时间:2014-08-21 21:12
提问者对于答案的评价:
谢谢回答
删除的意义就是直接把他后面的所有数据都前移一个地址就好了呀!和fifo的操作一样,只不过fifo是整个表操作一遍,你这个只是操作其中的一部分,如果操作的是第一个那么就和fifo的操作一次是一样的了。
补充回答:你没有理解我的意思。我的意思是操作和fifo一样,如果是删除第一个,那么就是真正的fifo,如果是删除后面的数据那么就是从删除的地址后米娜开始,所有的地址的数据都直接前移一个地址就好了,fifo指针操作默认地址是从0开始的,你删除的操作是从选中的地址后面的一个地址开始的。
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!