求教程序问题 点击:391 | 回复:6



sxxdk

    
发表于:2012-03-15 15:52:37
楼主

LD               SM0.1

O               M0.0

MOVB          1,QB0

LD              i0.0

EU

SLB             QB0,1

LD               I0.1

EU

=              M0.0

MOVB        0,QB0

程序中I0.0每一个上升沿QB0左移一位,当I0.1的上升沿到来,M0.0接通一个扫描周期,同时QB0清零,而在模拟时Q0.0重新点亮,当一个扫描周期结束后M0.0的常开断开,这样下一个扫描周期为什么会将Q0.0置位呢?请前辈帮助解答。谢谢!

 

 



楼主最近还看过



狼牙精神

  • 精华:6帖
  • 求助:5帖
  • 帖子:469帖 | 5379回
  • 年度积分:3
  • 历史总积分:62964
  • 注册:2020年3月27日
发表于:2012-03-15 16:27:54
1楼

SM0.1 首次扫描周期时该位打开。

I0.1上升沿到来时,M0.0接通,

LD               SM0.1

O               M0.0

MOVB          1,QB0

Q0.0就置位了。

彩云之滇东北

  • 精华:37帖
  • 求助:5帖
  • 帖子:148帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2012-03-15 16:35:41
2楼
O M0.0应该调整一下,换成I0.1的下降沿给一个扫描周期给M0.2,用M0.2来付初值,也就是 O M0.2

zhxl198808——工控人生

  • 精华:7帖
  • 求助:14帖
  • 帖子:79帖 | 3915回
  • 年度积分:0
  • 历史总积分:22219
  • 注册:2008年9月06日
发表于:2012-03-15 17:00:31
3楼
引用 狼牙精神 的回复内容:SM0.1 首次扫描周期时该位打开。I0.1上升沿到来时,M0.0接通,LD               SM0.1O               M0.0MOVB          1,QB0Q0.0就置位了。



wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-15 18:18:48
4楼

你的程序少了一个语句:LD     M0.0,故编辑时有误(可能贴图时拉掉了)。

LD     SM0.1

O      M0.0

MOVB   1, QB0
LD     I0.0

EU

SLB    QB0, 1

LD     I0.1

EU

=      M0.0

LD     M0.0
MOVB   0, QB0
你问:当一个扫描周期结束后M0.0的常开断开,这样下一个扫描周期为什么会将Q0.0置位呢
     回复:因为当执行I0.1的前沿输送给M0.0使M0.0=1,下一个扫描周期一开始M0.0仍=1,由于M0.0=1,故就执行第一条指令:将1送入QB0,使Q0.0置位。而程序扫描到 LD I0.1 EU = M0.0时,由于前沿已结束,此时M0.0=0,即M0.0此时才断开。

sxxdk

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 188回
  • 年度积分:0
  • 历史总积分:1143
  • 注册:2008年9月17日
发表于:2012-03-16 09:05:43
5楼
非常感谢各位前辈的指教!

sxxdk

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 188回
  • 年度积分:0
  • 历史总积分:1143
  • 注册:2008年9月17日
发表于:2012-03-16 11:02:28
6楼

 

LD     SM0.1         首次扫描周期时该位打开。

O      M0.0           而此时M0.0并不闭合。

MOVB   1, QB0      将1传送到QB0,Q0.0亮。
LD     I0.0             I0.0的每一个上升沿QB0左移一位

EU

SLB    QB0, 1

LD               I0.1     当I0.1的上升沿到来。

EU

=              M0.0      M0.0置位

MOVB        0,QB0      QB0清零

问题是程序执行到QB0清零后I0.1断开,M0.0是不是要等到下一个扫描周期才断开?

 

SSI ļʱ