简化程序

请帮我看看,怎么简化一下程序
网络1:
LD     SM0.5
EU
MOVW   VW516, VW518
MOVW   VW514, VW516
MOVW   VW512, VW514
MOVW   VW510, VW512
MOVW   VW508, VW510
MOVW   VW506, VW508
MOVW   VW504, VW506
MOVW   VW502, VW504
MOVW   VW500, VW502
MOVW   VW522, VW500
网络2
LD     SM0.5
EU
MOVW   VW500, VW520
+I     VW502, VW520
+I     VW504, VW520
+I     VW506, VW520
+I     VW508, VW520
+I     VW510, VW520
+I     VW512, VW520
+I     VW514, VW520
+I     VW516, VW520
+I     VW518, VW520
网络3
LD     SM0.5
MOVW   VW520, VW524
/I     +10, VW524

问题补充:
其实就是连续的10个整数,
网络1:
把原来第一位的数值赋值给第二位,把第二位的数值赋值给第三位,依次类推,然后把最新数值给第一位。
网络2:
把这10个数相加起来
网络3
把这10个数相加起来除以10,得出平均值

最佳答案

这样子行吗:


Network 1
LD     SM0.5
EU
BMW    VW500, LW10, 10             // LW作暂存
BMW    LW10, VW502, 9              // 移回去9个就行了
MOVW   VW522, VW500

Network 2 
LD     SM0.5
EU
ITD    VW500, AC0                  // 累加和初始化
MOVD   &VB502, AC1                 // 要操作的指针
FOR    AC0, 1, 9
ITD    *AC1, AC2
+D     AC2, AC0                    // 数位扩展,防止溢出
+D     2, AC1                      // 指针前移

Network 3 
NEXT

Network 4 
LD     SM0.5
EU
/D     10, AC0
MOVW   AC0, VW24

我不知道你的数据取值范围,所以特别做了防溢出处理。

提问者对于答案的评价:
XIEXIE~

专家置评

已阅,最佳答案正确。
可以考虑循环的方式,或地址指针间接寻址。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:11
下一篇 2020年10月31日 下午2:11

相关推荐

  • 关于S7 200自由口通讯CRC校验的问题?

    做一个项目通过S7 200的串口与仪表进行自有口通讯,遇到CRC校验的问题比较发愁,不知道该怎么做,有没有这方面的资料? 最佳答案 200或者200samrt …

    SIMATIC S7-200 2021年7月5日
  • modbus测试提示modbus信息超时

    我将编译好的带有从站modbus指令库的程序下载到s7200中,用pc-ppi电缆连接电脑com口与s7200 phot0端口,运行modbuscan测试软件进行通讯测试…

    SIMATIC S7-200 2020年11月5日
  • 用200的通讯口来读一仪表的RD232口?

    用S7-200的通讯口来读一仪表的RS232口的数据。比如一流量表,该表有累积流量,以及显示流量等功能,那么PLC到底读上来了几个数?是流量值还是流量累积值,或者仪表上的值都读了上…

    SIMATIC S7-200 2021年7月5日
  • wincc7.0获取PCAccess中变量状态

    wincc中怎么获取PCAccess中变量的状态,即那些PCAccess自带客户端中状态栏显示的好和坏。另外,wincc通过pcaccess与s7200通信,怎么在wincc中即时…

    2021年7月5日
  • TD400C设置设备运行的时间

    我想通过TD400C的上下键来设定控制2泵运行的时间,(XX小时XX分钟XX秒),这个设定的时间在设定完以后,按ENTER键就保存了,请问这样的程序怎么写?? &nbsp…

    SIMATIC S7-200 2018年12月2日
  • SMARTs7200与两台设备做自由口通讯

    SMARTs7200与设备做自由口通讯,现在用中断做好一台了,如果是两台我如何做轮询,发送和接收,是如何做的呢,请高手们指教? 钻石用户推荐最佳答案 把两台设备设为不同站号,第一台…

    2021年7月5日
  • V4.0编程软件问题

    西门子V4.0编程软件里没有CPU222CN,无法联机。有什么解决办法吗。谢谢 钻石用户推荐最佳答案 STEP7microwin V4.0 SP9中有CPU22…

    2021年7月5日
  • S7200滤波程序

    S7200滤波程序 大家看看附件 图片画问号的地方是不是 错了?? 问题补充:刚才附件不能显示,重发附件 图片说明:    &nb…

    2018年12月2日
  • 如何在S7-200中编程求曲线的斜率

    1、想着S7-200中编程求曲线的斜率,请问能实现吗?2、在S7-200中如何编程扑捉周期为0.2S的正弦函数的过零点程序?望给指导一下,谢谢了! 最佳答案 1、想着S7-200中…

    SIMATIC S7-200 2020年10月31日
  • 实型转换成整形

    西门子200在使用梯形图编程将实型转换成整形怎么做。 最佳答案 先用round取整,将实数转换0为双整数,再用DI_I将双整数转换为整数看图: 图片说明:   …

    2021年7月5日