工控编程吧

标题: FM350-1高计及OB40中断的关系 [打印本页]

作者: baikhgmv    时间: 2016-9-25 22:11
标题: FM350-1高计及OB40中断的关系
FM350-1高计及OB40中断的关系

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

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

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

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

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

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


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


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


-------是DB40.DBD34。

DB40是分配给高计的背景数据块。


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


-----我认可偏差。

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

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

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

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

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


--------是不是PLC反映慢呀


------不是慢。

如果慢的话,我读出来的实际值应该比较大才对。


-----老兵,需要查一下当前生效的中断比较值,是不是355348?


--------这个我是确认的,因为只有两个比较值。另一个比这个比较值大好多,接近42K了。


--------需要几个参数:

---------要明白,DB40是在什么时候被刷新的,OB40中断时是否有再刷新DB40?


--------兵哥,锁存读数是最安全的,但是需要处理DI信号的速度,所以你我曾经看过的图纸,那个DI会做一个处理!我试过用OB40读数,OB1读数,还有就是锁存读数,有差别!
(, 下载次数: 0)