回复:200Smart里面的定时中断长期运行下来可靠吗?

已锁定

xiatianyun

  • 帖子

    861
  • 精华

    10
  • 被关注

    25

论坛等级:奇侠

注册时间:2020-05-09

白金 白金 如何晋级?

发布于 2023-02-23 18:04:33

51楼

“因此,在同一个扫描周期内,你若没有扫到该定时器指令,则错过了一次时间更新,表现出来就是定时器变慢了。”

-------------------------------------------------------------

我测试了,确实如此。

使用Clock_1s跳转到T251后面,这样0.5s执行定时器,0.5s错过定时器。慢一半。

------------------------------------------------------------

1、扫描周期的作用

扫描周期的某个时刻(比如用户程序开始前,具体查手册),记录本次记录与上一次记录时相差多少个100ms间隔,这个间隔数可能是0,也可能是100ms、200ms等,是100ms的整数倍

这个100ms间隔,供所有100ms定时器使用,是个公共资源。

-----------------------------------------------------------

本次记录与上次记录相差多少个100ms间隔?如果只是如此的话不至于漏记,至少在执行到时会补回来的。

这个100ms定时器更新机制还是没搞清楚。

从现象看更新机制可能是这样的:


Time100msErr= ThisCyc100msCount - LastCyc100msCount ; // 主程序执行完毕或开始时进行系统级计算,可能用户用不用定时器都会进行该计算。

if(Time100msErr > 0)

  LastCyc100msCount = ThisCyc100msCount;


T250 = T250 + Time100msErr; // 用户程序内执行定时器时计算。


这样,差值虽然每个扫描都会计算出来,但每个扫描都会更新上次记录,只要差值大于0.


---------------------------------------------------------------

这样显然会存在问题。

但是我的程序定时器是每次扫描不会漏过的,并且只执行了一次。



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9389条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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