本月累计签到次数:

今天获取 积分

CPU
0

如何读S7-1500 CPU的运行时间

如何读S7-1500 CPU的运行时间
已邀请 :
2

开始弯

赞同来自 : 李四#1557 哦然后呢

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


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

李四#1557

赞同来自 : 一丛花

我也讲种办法

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

QQ图片20170309134707.jpg


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

QQ图片20170309135230.jpg

 
1

一丛花

赞同来自 : 青春年少

另一种方法,大家比教一下:
调用RT_INFO函数读出运行时间
通过函数RT_INFO也可以读出CPU的运行时间,示例程序如图所示。
QQ图片20170309135805.jpg

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

青春年少

赞同来自 : 李四#1557

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

QQ图片20170309140328.jpg

图  RUNTIME指令

要回复问题请先登录注册