登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:s7200如何计算VB连续区域累加和?

点击:1365 回复:11

哪位高手可以帮忙分析一下问题所在?万分感激,调了一天了没结果,急等。
附件 1.jpg
附件 2.jpg
16-11-29 20:30
为啥循环只有开始,没有结束!把其中一个VW10换成vw20试试
16-11-29 21:07
我建议你翻开手册,仔细学习一下FOR指令的用法。
Good Luck~
16-11-29 21:34
有next的,没贴出来,我明天去试试你的方法。表情
16-11-29 22:11
新手一枚
16-11-29 22:12
地址用重复了吧
16-11-29 23:05
没字节加指令、将字节转换成字再计算可以不用FOR指令用跳转指令
如:
//网络0
LD     Always_On
MOVD   &VB10, AC1
MOVD   &VB14, AC2
XORD   AC0, AC0
XORD   AC2, AC2
XORD   AC3, AC3
BTI    *AC1, AC0
INCD   AC1
JMP    12
//网络1
LBL    10
//网络2
LD     Always_On
BTI    *AC1, AC3
+I     AC3, AC0
INCD   AC1
//网络3
LBL    12
//网络4
LDD<   AC1, AC2
JMP    10
//////
最后AC0里面就是累加和
VB0为累加开始字节地址、VB4为结束字节地址;
可以将MOVD   &VB14, AC2
修改成MOVD   AC1, AC2
    +D     4, AC2
这里的4是需要累加计算的个数
最后修改:2016/11/30 8:46:26
16-11-30 08:42
好的,我试下。
16-11-30 09:16
编译通过了,下载时出现非致命错误,下载不了。
16-11-30 09:30
//网络0
LD     Always_On
MOVD   &VB10, AC1
MOVD   &VB14, AC2
XORD   AC0, AC0
//XORD   AC2, AC2 删除这句
XORD   AC3, AC3
BTI    *AC1, AC0
INCD   AC1
JMP    12
//网络1
LBL    10
//网络2
LD     Always_On
BTI    *AC1, AC3
+I     AC3, AC0
INCD   AC1
//网络3
LBL    12
//网络4
LDD<   AC1, AC2
JMP    10
//////
最后AC0里面就是累加和
VB0为累加开始字节地址、VB4为结束字节地址;
可以将MOVD   &VB14, AC2
修改成MOVD   AC1, AC2
    +D     4, AC2
这里的4是需要累加计算的个数
16-12-01 08:37

上一页下一页

工控新闻

更多新闻资讯