回复:PLC精确计时

已锁定

ALlll

  • 帖子

    147
  • 精华

    6
  • 被关注

    18

论坛等级:侠士

注册时间:2018-03-03

普通 普通 如何晋级?

发布于 2020-07-15 14:14:44

6楼

展开查看
以下是引用sangshunyang在2020-07-15 13:12:16的发言 >3楼

          没有看到过西门子 IEC 定时器底层实现的原理资料,PLC内部应该有一个类似原子钟的东西 (独立于系统时钟),定时器开始运行时都是从这里获取一个标记暂存起来,以后要使用该定时器Q ,ET  再从原子钟里取数据,而后再与暂存值做运算来更新  Q ,ET  。也就是说定时器的更新并不是当程序扫描到定时器指令时才更新,一扫描周期可能会更新多次。IEC 定时器精确的,但可能不会按照你的定时逻辑去执行你的任务。比如你想在信号发出后的第10个毫秒去做一样事情,这样就有可能有时不会执行你要做的事情,除非你的扫描周期每次都不会大于 1 个毫秒。




差还是有差的,IEC定时器的帮助里面没提,就像1楼说的,我想那个缝还是避免不了的吧。

而且理论上的和项目中的情况会有些偏差。

下图是自己写的定时器,不带背景数据用得蛮方便的。用OB1的周期作为时基。每次扫到调用的地方,加上上一周期扫描时间。

理论上误差应该不超过一个扫描周期,IN导通的第一个周期的从OB1开头到FC调用之间的时间为a;IN导通的最后一个周期的从OB1开头到FC调用之间的时间为b。误差应该是|a-b|。

实际上,做过比较误差还是比较大的。大概两分钟差出去一秒吧。




评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10700条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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