回复:PLC精确计时

已锁定

小釉

  • 帖子

    2758
  • 精华

    26
  • 被关注

    62

论坛等级:至圣

注册时间:2011-05-12

钻石 钻石 如何晋级?

发布于 2020-07-16 08:26:40

18楼

展开查看
以下是引用ALlll在2020-07-15 16:47:54的发言 >13楼

相比于定时器,我还是更相信循环中断一点。

我把原来的一个OB按功能分成3个周期不同的OB,分配高优先级的OB号给短周期OB。

参考时基IO的原理,采集标记时间戳的OB周期最短500μs(极限值)。

理论上精度可以到0.5ms。

唯一的一个问题,不确定1500背板总线周期是不是固定的,如果浮动就没办法了。



我同意你的观点,循环中断要比定时器更稳定一些。

主要的原因在于循环中断的优先级高于定时器的优先级,当然循环中断是不会打断定时器的运行的。

也就是说定时器的更新并不是当程序扫描到定时器指令时才更新,一扫描周期可能会更新多次。


像你例子中分3个定时中断,我感觉还是有比较大的隐患的。

0.5ms 10ms 20ms的定时中断意味着什么

也就是说 20ms定时中断运行时,中间至少调用了40次 0.5ms的程序,

第一种情况:假设OB的优先级相同的话,

如果0.5ms中的程序较大的话,都有可能出现20ms定时中断被丢弃的情况,在这个地方还没有考虑10ms的定时中断,如果考虑10ms定时中断的情况,里面的情况就更复杂一些。

你可以通过优化的OB临时变量看一下,是否有OB被丢弃或者超出看门狗时间。

默认情况下,诊断信息是不选择的,即使出现这种情况,CPU也不会报警。选择上排队和诊断,你看一下。

某些情况下,循环中断OB不是像你想的那样,10ms的定时中断,有可能呢50ms运行,这个也不是不可能发生的。

所以你说循环中断不准,首先看一下循环中断的时间是不是真正的按照你的想法运行的。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10590条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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