appleman
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看appleman的 主题 / 回贴
楼主  发表于: 2008-06-21 10:04

for  k4
m8013    incp    d10
next
m8013  incp  d20
按照指令说明
执行的结果 应该是 d10  是 d20
的四倍
但是我在 gx  developer中仿真的结果是d10  = d20
请问为什么
多谢各位朋友 杨老师
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5196 个
工控威望: 7419 点
下载积分: 158730 分
在线时间: 3159(小时)
注册时间: 2007-11-21
最后登录: 2024-11-18
查看sjm213的 主题 / 回贴
1楼  发表于: 2008-06-21 11:11
把INCP改为INC,再写个DIV D10 D20 D0,看看D0得到的结果就是4。

至于为什么INCP的情况下两者相等,再想一下。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5196 个
工控威望: 7419 点
下载积分: 158730 分
在线时间: 3159(小时)
注册时间: 2007-11-21
最后登录: 2024-11-18
查看sjm213的 主题 / 回贴
2楼  发表于: 2008-06-21 22:58
每一个扫描周期FOR ……NEXT之间执行4次;但因为INCP是脉冲指令,在M8013、M8000这样的条件下每个扫描周期里没有ON--OFF--ON的变化,所以这4次程序执行结果还是只+1而已,故D10与D20结果相等。改为INC后,只要是前面条件为通路,每个扫描周期FOR……NEXT的执行效果就是+4了,所以D10为D20的4倍。