您的位置:控制工程论坛网论坛 » 西门子社区 » FM350-1高计及OB40中断的关系

zhanghe

zhanghe   |   当前状态:在线

总积分:3518  2024年可用积分:0

注册时间: 2010-03-22

最后登录时间: 2023-08-14

空间 发短消息加为好友

FM350-1高计及OB40中断的关系

zhanghe  发表于 2016/5/21 17:10:47      1427 查看 3 回复  [上一主题]  [下一主题]

手机阅读

我一直以为,当我组态FM350-1为硬件中断,且中断方式选择为“达到比较值1的上升沿”时,OB40就应该在当计数值达到比较值的时候执行一次。

比如,我如果设定比较值为1000,那当计数值为1000的瞬间,OB40执行。

而且我的编程思路也一直是这样的。

但是,前几天在一个现场处理问题时,出于工艺的要求,我在OB40中读取当前实际计数值,却发现实际情况并不是我理解的那样:

比如,我的比较值是:355348,但是在OB40中读到的实际值却小于这个值。我连续观测了十次,数值如下:355211、355220,355210、355324、355217、355328、355128、355070、355253、355230.

从这组数据可以看出实际值远小于比较值时,OB40就已经开始执行了。


是我的理解错了?还是这是FM350-1的一个BUG?或者,压根就是一个误导?

 

1楼 0 0 回复
  • lanan

    lanan   |   当前状态:在线

    总积分:5000  2024年可用积分:0

    注册时间: 2013-08-07

    最后登录时间: 2023-08-11

    空间 发短消息加为好友

    lanan   发表于 2016/5/22 10:28:03

    呵呵,要相信西门子,你在OB40里读到的数是从哪里读的?DB?外设地址?

    2楼 回复本楼

    引用 lanan 2016/5/22 10:28:03 发表于2楼的内容

  • xuwenbin

    xuwenbin   |   当前状态:在线

    总积分:4115  2024年可用积分:0

    注册时间: 2007-06-08

    最后登录时间: 2023-08-16

    空间 发短消息加为好友

    xuwenbin   发表于 2016/5/22 10:45:01

    读写是有偏差的,但是中断是正常调用的,在中断中可以去操作上一次的设定值。如果有条件,你可以用硬件锁存的方式做个记录,你就可以发现区别了!

    3楼 回复本楼

    引用 xuwenbin 2016/5/22 10:45:01 发表于3楼的内容

  • yujie0612

    yujie0612   |   当前状态:在线

    总积分:3617  2024年可用积分:0

    注册时间: 2015-01-29

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    yujie0612   发表于 2016/5/24 18:39:16

    我认可偏差。

    我的分析是在OB40中读出的实际值应该比比较值稍大一点,因为考虑到读写周期的影响。

    但现在的问题是实际值比比较值小,而且小的比较多。

    或者,如果我在OB40中读外设地址的话,可能会更接近中断的概念。但没有机会试。

    如果读外设地址两者接近的话,那说明FM350的背景数据块更新还是受读写周期影响的,滞后于实时数据。

    我曾经以为这个数据块是实时更新的。


    4楼 回复本楼

    引用 yujie0612 2016/5/24 18:39:16 发表于4楼的内容

总共 , 当前 /