回复:斜坡函数与扫描周期的事情... ...

伊默

西门子1847工业学习平台

  • 帖子

    4264
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2018-03-12 08:46:14

24楼

to Zane : 你讲的问题,正是我在首楼提出的问题! 问题的根源在于T_DIFF的结果使用了Time类型, 而偏偏系统默认的又不是四舍五入,反而是去尾留整。 所以导致计算得到的扫描周期会比平均扫描周期要小! 最大的误差就是是1ms 。  所以当我的平均扫描周期为10ms时,加速度偏差为10%, 而我的平均扫描周期为3ms,那么最大误差可能达到50%了!


那么问题的解决方法就是后来我直接的,直接用DTL.NANOSECOND去做减法, 这样精确到纳秒级别。 由于1毫秒=1000 000纳秒! 绝多数的扫描周期都是毫秒级以上, 所以精确到纳秒后,整个的误差就可以完全忽悠不计!   

顶多顶多, 在#iTemp0 := RD_SYS_T(OUT=>#ACTUAL_TIME); 这一句刚扫描完,来了一个更高级别的中断, 那么这一个扫描周期的计算值就会有偏差了(偏差值就是高优先级中断的执行时间)。   而这种概率可以忽略不计,因为我的加减速会有上百个扫描周期。   而且即使是用定时中断,碰到更高级别的中断也一样存在这问题... ...

I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10590条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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