有一数字为vd10加上另一数字vd14得新数字vd18 ,再将vd10加上vd18得新数字vd22 ,再将vd10加上vd22得新数字vd26 ,再将vd10加上vd26得新数字vd30 ,再将vd10加上vd18得新数字vd34......,再将vd10加上vd278得新数字vd282。共计80组数据。是否有简单的指令能完成(不要用实数加法一步一步地加或则乘法等,因这样的数据组共有4组320 个数据程序量会很大)。
问题补充:
(再将vd10加上vd18得新数字vd34......,)写错了。
改为(再将vd10加上vd30得新数字vd34......,)。
QLL72368你好能否给我写一个20组数据的例程。(zhicheng.qiu@daimay.com)
要的所有中间过程值都要用的。
最佳答案
了解了一下,典型的循环加法,4行程序就能完成了。
用LAD来做这个运算,是因为你要保存所有的中间过程值。
如果用STL的+D指令来做的话,只能A+B=B B被覆盖了。
如果用LAD的ADD_DI来做的话,能把A+B=C B不被覆盖。
这个细微的区别对你保存中间过程值很重要
下面我写的其实是LAD的程序,因为这里我没有办法贴图
别误认为这是STL的。Network3 里的顺序不能错。
Network 1
MOV_DW &VB14, VD4 //把VB14的地址,也就是VD14的地址放到VD4中
Network 2
FOR VW0, 1, 80 //执行Network 3 80次 VW0是次数的寄存地址
Network 3
ADD_DI IN1=VD4, IN2=4 OUT=VD8 //把VD4的地址加4 放到VD8中
ADD_DI IN1=*VD4, IN2=VD10 OUT=*VD8 //把VD4地址里的数据加VD10 结果放到VD8地址指定的变量中
ADD_DI IN1=VD4, IN2=4 OUT=VD4 //把VD4的地址加4 放到VD4中 准备下一个循环用
Network 4
NEXT //FOR 循环的结束
备注:如果VD4是VD14的地址,VD4 加4 后就代表是VD18的地址。
提问者对于答案的评价:
我已经试过了很好.
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc355346.html