编程指令问题

有一数字为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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论