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

伊默

西门子1847工业学习平台

  • 帖子

    4264
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2018-03-09 08:26:38

6楼

我吼了几嗓子,结果没什么人起哄呀... ...

我本来是想带节奏的,结果被ZANE版带沟里去了  ^_^

算了,我还是自己写出来吧。


#iTemp0 := RD_SYS_T(OUT=>#ACTUAL_TIME);   //读取当前系统时间

#rCycleTime := 1.0E-3*DINT_TO_REAL(TIME_TO_DINT(T_DIFF(IN1:=#ACTUAL_TIME, IN2:=#LAST_TIME)));  //两次调用之时间差(S)

#LAST_TIME := #ACTUAL_TIME;  //为下一次调用做准备


对照图片,DTL数据类型可以读取到 纳秒单位。  而事实上T_DIFF指令是将两个DTL类型做减法,可是结果却只保留到 毫秒 单位!  毫秒就毫秒吧,最“可怕”的却是它的减法不是四舍五入,而是去尾留整!!!   比如我的扫描周期为2.1ms,它计算出来的结果显示为2ms,  扫描周期为2.99毫秒,它也显示是2ms ! 这就尴尬了.... ....   当我在加速过程中,PLC的扫描周期平均为2.6ms时,计算的最终结果也还是2ms, 意味着,我的实际加速度就变成了 30 * 2 / 2.6 = 23 ... ...   


问题就是这么出来的... ...

嘿嘿,怎么解决???


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

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10591条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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