回复:关于在s7-1200编程环境下的速度计算方式

已锁定

一指禅_LYG

  • 帖子

    256
  • 精华

    0
  • 被关注

    3

论坛等级:侠士

注册时间:2021-06-24

黄金 黄金 如何晋级?

发布于 2021-09-09 10:24:06

12楼

展开查看
以下是引用WWCWWC在2021-08-17 10:58:55的发言 >楼主

关于在s7-1200编程环境下的速度计算方式

  昨天看到有这样一个贴子,要求编辑一个相对速度的计算公式,实际上类似的问题只需要理解了其中的一些基本原理,编辑这样的程序也不算有难度的项目。在回复中大概讲了调用定时中断的方法,因为定时中断相对于间隔时间是一个相对恒定了时间区间,这样计算出来的速度比较合理。

方式:

1)  定义一个循环定时中断,假设200mS。

2)  在这个中断组织块中编辑速度值程序。

程序:

1)  创建一个新项目,plc为S7-1214C ,选择版本V4.2的cpu确认。

2)  插入一个循环定时中断,设置定时中断时间周期为200mS,图示:

为什么需要设置循环定时中断为200mS?这个主要还是一个所谓的经验方式,如果把这个周期设置时间间隔相对较大,那么,速度计算出来的值,看起来数据“跳变”现象大,尤其是项目速度不恒定的速度计算。如果这个周期时间间隔设置相对小,速度数据变化频繁,同样也针对于速度不恒定的环境下,看起来会不这么舒服(数据的大、小值变化)。所以,这个循环定时中断时间还是需要根据具体的设备,通过实际比较找到一个相对合适的定时循环中断周期计算。

3)  速度程序,在设置的定时中断组织块OB30中编辑速度程序,图示:

速度值的计算原理:

在一个始终循环的定时中断(200mS)中,编辑速度数据的当前值减上一个周期的速度数据,得到通过一个200mS时间间隔的差值,这个差值是设备在移动或者运行后,通过200mS周期后的变化值,相当于理解通过200mS的移动量。为感觉上的一致性,一般把速度值定义到1S或者1MIN的单位,这样看起来的速度单位值相对舒服一点,也统一一点。计算完本周期的速度值,将本次计算的当前值,传送到下一个周期的速度数据存储区,以方便下一个200mS间隔周期再次调用计算。

   将程序编译、保存后下载到plc,读取MD0的变化数据,得到一个速度值,图示:

  程序运行结果,当在某一个定时中断中检测到MD100 = 12.0,即在上一个定时中断中MD104 = 0的状态下,说明通过200mS周期后移动了12.0mm,那么,相对1S时间的速度值是60.0mm/S。因为是循环定时中断,所以,MD112的值被200mS的周期间隔被不断的刷新,得到这个速度值的实时值。


精确的速度计算还是用口线中断做起来合理,中断时候直接取系统时间,下次中断再取然后求时间差,这种200mS间隔太不讲究了哦

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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