S7-200数据批量处理

我现在使用的是S7-200,CPU224XP;我想实现数据的批量处理:比如VW100-VW120一段数据,先执行VW100数据计算还有转换的命令,执行完毕之后立马把VW102拿过来做同样的数据操作,以此类推,一直循环到处理完VW100到VW120之间的所有字为止。请问如果要实现这个功能,程序该如何写?需要用到哪些功能?希望能提供一段参考程序。

问题补充:
我用FOR NEXT指令和间接寻址做了一个简单的测试程序,如图1,2所示,当我将M0.1置1后,VW200~206的值全都变成了32760(见图片3),而不是我想要的20。应该是过程中出现了无限多次+20的操作,请问如何才能实现只做一次+20的操作?

图片说明:

S7-200数据批量处理    S7-200数据批量处理    S7-200数据批量处理   

最佳答案

不清楚你第一次比较和第二次比较或者第N次比较的关联。
你可以考虑加1指令,即开始比较第一个数据,加1结果为1,以这个结果值作为比较条件;进行第二次比较,同时加1值为2,仍然以这个加1后的结果值作为比较条件;以此类推。当比较结束加1指令清0.
如果这个比较是一个周期完成的,则使用指针和for/next;置换指令配合使用,常见冒泡法排序就是利用这样的控制原理。
补充问题回复:
你的循环指令的含义是循环4次,即循环体内的程序联系累加4次。造成你描述的问题(32767)可能的原因:检测vw200数据的初值,适当减少VW200数据测试。
参考资料:D

提问者对于答案的评价:
很细致的解释

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc162509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月9日 下午5:21
下一篇 2017年6月9日 下午5:21

相关推荐