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

伊默

西门子1847工业学习平台

  • 帖子

    4267
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2018-03-08 16:15:38

4楼

回到这个问题本身。  原来论坛上也有过几个贴子,问起如何计算1500/1200的扫描周期。 

其中一个方案就是用RD_SYS_T指令读取当前系统的时间, 然后两个扫描周期读取的时间用T_DIFF指令做减法,就计算出来扫描周期了。


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

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

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


#rDELTA_TIME就是计算出来的扫描周期了(单位:秒)

然后按照我顶楼提出的问题, 加速度度为30,目标速度150。  那么每个扫描周期我的速度增量为30*#rDELTA_TIME, 每个扫描周期将输出叠加,直到达到目标速度150为止


看起来,思路和程序都完全没问题? 而且这个块我也用了有几年了!!!  可是昨天在调一台小机器的时候,忽然发现不对劲。  我在触摸屏上有显示当前目标速度的,触摸屏对应的变量刷新周期为一秒, 那么原则上我在触摸屏上观察到的目标速度应该是以30为增量了,比如第一眼看到12,那么第二个数据应该是42,第三下就是72。。。。   可是事实却是每次增加20多点.....


这是为何???


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

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10700条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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