回复:技术专题探讨-SIMATIC PLC 计时器的使用

小路

  • 帖子

    314
  • 精华

    4
  • 被关注

    6

论坛等级:游侠

注册时间:2004-05-17

普通 普通 如何晋级?

发布于 2009-01-05 09:41:24

0楼

quote:以下是引用eaglesky在2008-12-18 08:08:16的发言:
昨晚回去用模拟器研究了一下。做了部分实验,前面的实验就不说了,因为后面的实验推翻了我前面的分析。
根据 老兵 的提示,我在原程序的N2和N3之间增加了一段类似Harry_dong 提出的功能的程序,就是增加一段延时,不过我用是通过间接的调用中断OB35完成的。
实验结果是,M10.2完全有机会被置位! 并且,延时的时间越长,机会越大。
不过和Harry_dong 的结论,我的想法不完全相同。
我记得以前用315-2DP的实体CPU试过,即时在中断中调用timer,timer一旦触发之后,计时就开始了,并在“后台”计时,也就是说,和扫描周期以及timer被调用的周期没有直接关系。
在原程序中,由于程序及其简单,只有这三条语句,并且N2和N3紧紧相连,中间的语句执行间隔时间及其的短,加上有N2这句可以对T3复位的语句,且复位是“即时”生效的,Timer的动作条件能刚好赶在N2和N3之间的几率实在是太小了。这些条件导致N3这句能够捕捉到T3动作的几率变得非常非常的小。而加上了延时之后,在延时期间内,T3完成了动作条件的满足以及动作执行的时间,导致了原来的N3这句能够捕捉到T3动作的几率变的很大。并且可以进一步实验:修改T3的时间和N2、N3之间的延时时间,让延时时间大于T3时间,实验结果是M10.2必然会被置位。逐步增大T3时间或者减小延时时间或者两者同时进行,则逐渐开始出现M10.2不能被置位的情况,时差越大,被置位的几率越低。实际上,在原程序中,如果把N1和N2的位置颠倒,也就是让T3滞后一个周期被复位,或者将N3语句提前,争取在T3被复位前捕捉动作,捕捉的成功率就会比原程序大了不少。
和Harry_dong 结论不同的是在timer的动作上。是不是timer的时间到了就有动作,我的观点是,动作和时间到还是没到不是必然的结果,而是在于程序的调用上,时间是动作的前提而已。也就是说,如果时间没到,则一定不会有动作,如果时间到了,而程序还没有执行到对timer动作的调用时,还谈不上timer的动作,只有执行到对timer动作的调用程序才体会到timer的动作。换句话说,timer从被触发开始,在没有被复位之前,脱离了程序和扫描周期在计时,计时到了之后,才在相应的程序语句中体现出动作。


我有另外的见解,OB35的调用不同于OB1.
扫描周期的执行循序不一定和I/O刷新同步,当中断发生必然产生结果的刷新,这和OB1调用是不同的。
知识的积累由一点一滴开始.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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