中断程序用到的变量不可作中间变量

已锁定

醉书生

  • 帖子

    718
  • 精华

    25
  • 被关注

    18

论坛等级:侠士

注册时间:2004-06-13

普通 普通 如何晋级?

中断程序用到的变量不可作中间变量

780

3

2007-10-10 08:10:58

昨天忘了这条件原则,代价是程序工作随机出现异常,浪费整整一个下午排错,搞得我头晕眼花。
  比如有表示式 x = a / b,在 S7-200 中代码如下:
    MOV* a, x // 这里存放结果的 x 作了中间变量
    /* b, x // * 表示变量类型
  或
    MOV* a, AC0 // 引入中间变量 AC0
    /* b, AC0
    MOV* AC0, x
  在一般情况下,前一种方法是没有问题的,而且代码也较为简洁。如果中断程序要直接或间接的用到变量 x 的值,就不能使用第一种方法了。因为中断可能在任何时候发生,当恰好在 MOV* a, x 之后发生中断时,此时 x 中的值是 a,而不是所要的 a / b,这将导致中断程序计算结果错误。
  但中断程序不可能每次都发生在这个地方,所以程序表现为大多数时候正常,没有规律的出现异常,而且此种 BUG 极难排查。
中断程序用到的变量不可作中间变量 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33259条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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