yangjiejie
朝花夕拾
级别: 网络英雄
精华主题: 0
发帖数量: 308 个
工控威望: 5906 点
下载积分: 13712 分
在线时间: 723(小时)
注册时间: 2010-02-26
最后登录: 2024-11-20
查看yangjiejie的 主题 / 回贴
楼主  发表于: 2011-02-15 13:49
       各位大侠好,小弟看编程手册。自己实习做一个练习题:就是当X1 ON时,把50 ,55,60,65.......100这11个数据,用循环指令传送到D10到D20中去。
编写的程序如下:

   可是,我用模拟软件监控,为什么,循环的V是1,也只能传送50,55,60,小弟很纳闷,不知是什么地方出了问题,请各位同仁大侠,指导指导。
朝花夕拾
yangjiejie
朝花夕拾
级别: 网络英雄
精华主题: 0
发帖数量: 308 个
工控威望: 5906 点
下载积分: 13712 分
在线时间: 723(小时)
注册时间: 2010-02-26
最后登录: 2024-11-20
查看yangjiejie的 主题 / 回贴
1楼  发表于: 2011-02-15 15:02
      百度查了一下,如下列1加到10,可能是缺少条件判,如大于10次,就不执行循环指令


     有点明白了
朝花夕拾
ysheng9099
三人行必有吾师
级别: 工控侠客
精华主题: 0
发帖数量: 959 个
工控威望: 2440 点
下载积分: 21432 分
在线时间: 123(小时)
注册时间: 2010-10-28
最后登录: 2024-11-15
查看ysheng9099的 主题 / 回贴
2楼  发表于: 2011-02-15 20:46
图片:
请楼主看看这个程序,可以满足楼主的要求
detect
小心慎言,莫走邪道
级别: 略有小成
精华主题: 0
发帖数量: 286 个
工控威望: 474 点
下载积分: 1356 分
在线时间: 145(小时)
注册时间: 2009-02-10
最后登录: 2015-03-29
查看detect的 主题 / 回贴
3楼  发表于: 2011-02-15 22:30
我电脑上现在无法模拟,但从程序分析,最初的程序的确是没考虑到v0到10以后的问题,换句话说,也就是x0接通给D10赋值之后的第二第三及至更后扫描周期,原赋值循环程序将继续无限制执行,直到出错
V0是16位寄存器,当V0的赋值数据超过其数据容量时将溢出,
同样,D寄存器的允许使用地址也存在限制,
当V0和D的内容超过其允许值时,出错在所难免啊
因此,在赋值循环程序之前加上跳转完全有必要。
而二楼的程序应该能达到楼主的要求,但是存在无效的反复循环
个人见解,仅供借鉴
如有理解不当之处,请指正
[ 此帖被detect在2011-02-15 22:37重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(dl2006) 热心助人
  • 下载积分:+2(yangjiejie) 热心助人
    yuming1231
    工控我爱你
    级别: 略有小成
    精华主题: 0
    发帖数量: 158 个
    工控威望: 435 点
    下载积分: 917 分
    在线时间: 160(小时)
    注册时间: 2010-11-15
    最后登录: 2018-08-24
    查看yuming1231的 主题 / 回贴
    4楼  发表于: 2011-02-15 23:30
    学习了
    yangjiejie
    朝花夕拾
    级别: 网络英雄
    精华主题: 0
    发帖数量: 308 个
    工控威望: 5906 点
    下载积分: 13712 分
    在线时间: 723(小时)
    注册时间: 2010-02-26
    最后登录: 2024-11-20
    查看yangjiejie的 主题 / 回贴
    5楼  发表于: 2011-02-16 10:43
            2楼的我在线模拟,在X0不为ON时,D10 ,D11,D12 .......都有数据,且当XO为ON时,不仅传送了D10到D20,还有D21等的数据。三楼思路正确的,但我怎么看下面的程序不要调用或跳转也能正确的执行循环加指令次数
            程序如下:

            请高手继续解答,谢谢....       这个程序是1+2+3+.......100的程序
    本帖最近评分记录:
  • 下载积分:+1(dl2006) 热心助人
  • 朝花夕拾
    gk1234
    有反馈,才控制
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 124 个
    工控威望: 1160 点
    下载积分: 8765 分
    在线时间: 166(小时)
    注册时间: 2018-11-06
    最后登录: 2024-11-29
    查看gk1234的 主题 / 回贴
    6楼  发表于: 2011-02-16 11:05
    主要因为INCP只能运行一次,用INC就好了,必须加上循环完成后将V0清零,否则会一直加下去
    [ 此帖被hnyyl12在2011-02-16 11:12重新编辑 ]
    本帖最近评分记录:
  • 下载积分:+1(dl2006) 热心助人
  • 下载积分:+1(yangjiejie) 热心助人
    jupeigang
    级别: 探索解密
    精华主题: 0
    发帖数量: 53 个
    工控威望: 168 点
    下载积分: 2231 分
    在线时间: 35(小时)
    注册时间: 2011-01-22
    最后登录: 2019-02-13
    查看jupeigang的 主题 / 回贴
    7楼  发表于: 2011-02-16 19:55
    学习了