请教ROR指令用法 点击:4531 | 回复:7



lixb

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2007年2月26日
发表于:2008-11-16 10:02:44
楼主
新手请教各位师傅:如何使用ROR指令编写一个程序,使接在Y0到Y7的指示灯每个亮一秒



yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2008-11-16 12:02:13
1楼

以前在网上下了一ROR程序,是用于Y0-Y17之间的循环接通,现将其修改一下,以适应Y0-Y7之间循环:

K1对应Y0,K2对应Y1…依此类推,K128对应Y7。

钟瀚程

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 48回
  • 年度积分:0
  • 历史总积分:87
  • 注册:2008年3月20日
发表于:2008-11-16 14:57:00
2楼

这个很简单。首先,把K4Y000改成K2Y000,因为K4Y000代表Y000~Y017,而K2Y000代表Y000~Y007.

等一下,你说上面的程序是用于Y0~Y17之间的循环接通,那么MOVP   K128  K4Y000就不对了,

因为K128是2的7次方,到了第二次循环周期只能从Y007开始不是Y017。

而你说的是Y0~Y17之间的的循环接通,那么应该就是2的15次方。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2008-11-16 15:42:37
3楼

不错,K2Y000确实代表Y000~Y007,但ROR指令不接受少于16位的,在三菱说明书P192页:在位指定软元件的情况下,只有K4(16位指令)是有效的,如K4Y010。

因此在应用中,不得不用K4Y000,由此程序将在Y0--Y017之间循环,而楼主所要求的是Y0--Y7之间循环,故当循环到Y010--Y017时,用

[<   K4Y000  K1]--------[MOVP   K128   K4Y000]限制,使程序不执行Y010--Y017的循环。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2008-11-16 18:58:01
4楼
根据楼主的要求,还可以用以下程序实现,M8022是溢出标志继电器,用以限制Y010-Y017之间的循环。

qtvb168

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2007年4月28日
发表于:2009-02-17 15:54:16
5楼
dgxgfgdhdgdhgg

chabeiyuwo

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 18回
  • 年度积分:0
  • 历史总积分:43
  • 注册:2008年7月10日
发表于:2009-02-17 23:32:00
6楼
引用 yjig 的回复内容:

以前在网上下了一ROR程序,是用于Y0-Y17之间的循环接通,现将其修改一下,以适应Y0-Y7之间循环:

K1对应Y0,K2对应Y1…依此类推,K128对应Y7。



这个程序还有点问题吧?应该在正向第一个脉冲时送个数据进去吧!不然0能循环?

chabeiyuwo

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 18回
  • 年度积分:0
  • 历史总积分:43
  • 注册:2008年7月10日
发表于:2009-02-17 23:33:29
7楼
另外如果不用ROR的也可以这样。

热门招聘
相关主题

官方公众号

智造工程师