高数计数器突然跳变问题

已锁定

20170220198657

  • 帖子

    3
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2017-02-20

普通 普通 如何晋级?

高数计数器突然跳变问题

2736

4

2017-12-30 18:59:22

本人使用s7-200 smart ,用高速计数器(HC0)记录增量编码器变化,程序逻辑简化如下:

子程序开始记录一次HC0的值(beforeValue),当CV等于PV时,有一个中断,中断子程序,在子程序结束前记录一次HC0的值(doneValue),然后在主程序读取HC0的值(nowValue)。子程序执行过程中,使用物理的方式使得编码器在变化中;子程序结束,编码器也同时停止(停止物理设备)。

一般情况下,beforeValue 小于 doneValue,doneValue 等于 nowValue。例如:beforeValue=10,doneValue=20,nowValue=20。

但,不知道什么情况下,beforeValue   小于 doneValue,doneValue 不等于 nowValue。例如:beforeValue=10,doneValue=20,nowValue=-100。

HC0的值 突然跳变了,而且多数为负数,其绝对值与doneValue 相差甚远。


由于这个情况不知能什么情况下出现,不能重新问题,所以不能跟踪变量的变化。

个人分析:

  1. 编码器出问题。

    1.1. 编码器Z相跳变,导致编码器归零。此时,HC0应该为0才是。 所以否定。

    1.2. 编码器AB相跳变,导致高速计数器错误读取数据。若是,HC0的值不应该跳变等太大,最多在正负1~30变化。但实际情况是跳变太大。 所以否定。

  2. 高速计数出器问题。

    会不会高速计数器在某种情况下,不再根据编码器的输入而变化?因为HC0是可以直接赋值的。检查程序代码,虽然有对CV赋值,但逻辑上不存在问题,出现的数值也不是我程序定义的值。


请求各位大神,分享一下经验,是否遇到过这样的问题?



这个问题简单来说,高速计数器HCO的值,应该是直线增长,然后在编码器复位是突变为0,然后再直线增长的。而在不知道什么情况下,HC0的值突然没有规律地跳变了,然后继续直线增长。


高数计数器突然跳变问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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