回复:S7-200的高速计数是否不稳定?总是不定期的出现错误。

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    157

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2003-10-22 22:36:12

0楼

是你程序的问题。
中断程序可能在一个扫描周期的任意时间执行,如果计算预制值的时候被中断,最后结果就可能出错。
ORGANIZATION_BLOCK MAIN:OB1
TITLE=PROGRAM COMMENTS
BEGIN
Network 1
LD SM0.1
MOVB 100, SMB34
ATCH INT_0, 10
ENI
Network 2
LD SM0.0
MOVW +5, MW0
MOVW +10, MW2
Network 3
LD SM0.0
MOVW MW0, MW4
//如果中断程序在这被触发,则MW6就是5而不是50了。
*I MW2, MW4
END_ORGANIZATION_BLOCK

INTERRUPT_BLOCK INT_0:INT0
TITLE=INTERRUPT ROUTINE COMMENTS
BEGIN
Network 1
LD SM0.0
MOVW MW4, MW6


END_INTERRUPT_BLOCK
解决办法1:
将Network 3做如下修改
Network 3
LD SM0.0
MOVW MW0, MW8
*I MW2, MW8
movw mw8 mw4
解决办法2:
将Network 3做如下修改
Network 3
LD SM0.0
disi //禁止中断,保证在ENI指令之前的程序不会被中断打断
MOVW MW0, MW4
*I MW2, MW4
eni
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。