回复:分享读出S7-1500 CPU运行时间的四种方法

威师爷

  • 帖子

    5108
  • 精华

    47
  • 被关注

    255

论坛等级:至圣

注册时间:2013-09-18

白金 白金 如何晋级?

发布于 2016-12-27 16:21:25

9楼

展开查看
以下是引用月雨风云在2016-11-14 22:34:26的发言 >楼主

读出S7-1500 CPU的运行时间有多种方式,下面分别介绍这几种方式。

1.通过OB1的启动参数读出运行时间在非优化的OB1启动信息中带有OB1的运行时间,如图1所示。


图1.读出非优化的OB1中运行时间

将启动信息参数传递到全局变量中就可以读出CPU的上次扫描、最小、最大扫描时间,编程非常方便。

2.调用RD_SINFO函数读出运行时间

如果使用优化的OB1,启动信息简化而没有这些运行信息,如图2所示,则必须调用函数读出。 


图2优化OB1的启动信息

例如在OB1中调用RD_SINFO函数读出运行时间,程序如图3所示。参数TOP_SI为当前OB1的启动信息,数据类型为SI_classic,需要手动键入,ZI1为上次扫描时间,ZI2_3包含最小、最大扫描时间,低字为最小扫描时间,高字为最大扫描时间,示例中分别传送到MW10和MW12中。START_UP_SI为暖启动OB的启动信息,示例中没有进行引用。 


图3调用RD_SINFO函数

3.调用RT_INFO函数读出运行时间

通过函数RT_INFO也可以读出CPU的运行时间,示例程序如图4所示。


图4调用RT_INFO函数

通过模式1、2、3可以读出CPU的上次扫描、最小、最大扫描时间,在这三种模式下,参数INFO的数据类型为LTIME,可以直接读出。也可以通过其他模式读出运行时间的百分比。

4.调用RUNTIME指令读出运行时间

通过指令RUNTIME可以从参数RET_Val直接读出CPU的运行时间,单位为秒,MEM为中间保存程序运行的存储器,两个参数类型都是LREAL,除此之外还可以读出一段程序的运行时间。如图5所示。 


图5 RUNTIME指令


感谢分享!在使用1200时就使用了RUNTIME来监视CPU的扫描时间。

1500暂时没有使用过,不过在OB1的本地数据TEMP读取相关的变量与S7-300的有一点接近。


先收藏了!

谢谢!

工业起重机防摇摆 QQ:404136820 AntiSwayControl
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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