s7-200定时中断内使用 movb 1,*ac1 出错,为什么,请热心人帮忙! 点击:570 | 回复:2



pub3team1

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2011年3月02日
发表于:2012-01-06 10:19:57
楼主

请教高手:

 

当定时中断内使用 movb 1,*ac1 时,调试时出错不知道为什么?其中ac1之前已经定义为vb0到vb200的地址指针


主程序:

Network 1 

LD     SM0.1

S      M0.0, 1

Network 2 

LD     M0.0

MOVD   &VB0, AC1

AENO

S      M0.1, 1

R      M0.0, 1

Network 3 

LD     M0.1

MOVB   250, SMB34

ATCH   INT0, 10

ENI



中断程序:
Network 1 
LD     SM0.0
LPS
LDN    I0.0
ON     I0.1
ALD
MOVB   2, *AC1
AENO
INCD   AC1
LRD
LDN    I0.0
ON     I0.1
ALD
MOVB   2, *AC1
AENO
INCD   AC1
LPP
LPS
A      I0.1
A      I0.2
MOVB   1, *AC1
AENO
INCD   AC1
LPP
A      I0.0
A      I0.1
AN     I0.2
MOVB   0, *AC1
AENO
INCD   AC1



楼主最近还看过



wingwf2000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2012-01-12 17:25:43
1楼

因为你在中断中取得的AC的内容未必就是你设定的内容,因为AC1是累加器随时都可能修改,所以你最好先把数据保存到M区或V区,在中断时先保存AC的内容,然后从M区或V区取出数据存到AC中再使用,中断结束后要将AC原来的内容回复,这叫保护现场和恢复现场,中断时都应该这么做

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:27帖 | 3065回
  • 年度积分:0
  • 历史总积分:12427
  • 注册:2008年9月18日
发表于:2012-01-13 09:34:51
2楼
AC 作为指针来使用 要小心了, 因为 AC 累加器 的值会隐形的参与计算的, 所以最后在中断程序的一看是 幅值 有限的 地址,再使用!

热门招聘
相关主题

官方公众号

智造工程师