西门子S7-1500测量程序的运行时间

360影视 欧美动漫 2025-05-28 17:26 1

摘要:在STEP 7(TIA Portal)中,可以使用"RUNTIME"指令来测量S7-1200/1500 CPU中完整程序、单个块或命令序列的运行时间。使用"RT_INFO"指令,可以读取S7-1500 CPU中特定组织块、通信或用户程序运行时的统计信息。"RU

一、测量指令概述

在STEP 7(TIA Portal)中,可以使用"RUNTIME"指令来测量S7-1200/1500 CPU中完整程序、单个块或命令序列的运行时间。使用"RT_INFO"指令,可以读取S7-1500 CPU中特定组织块、通信或用户程序运行时的统计信息。"RUNTIME"指令在"基本指令>程序控制指令>运行时控制"菜单下,"RT_INFO"指令在"扩展指令>诊断"菜单下,如下图1所示。

图1. 测量指令

技术选型请点击头像工控小周

欢迎加入组织PLC技术交流

二、实验环境和内容

在本应用示例中,通过以下产品进行程序运行时间的测量,实现了使用RUNTIME和RT_INFO分别测量程序的运行时间。

软件:

TIA V16 Professional

硬件:

CPU 1511-1PN V2.8

三、示例程序

1.示例1: 用"RUNTIME"R指令测量S7-1200/S7-1500程序的运行时间

使用 "RUNTIME" 指令可以测量整个程序、单个块或命令序列的运行时间。注意如果想测量单个块或命令序列的程序运行时间,为了避免被通信或其他高优先级OB中断或延迟,在允许情况下请将程序代码移动到具有更高优先级的OB中。本示例测量循环中断OB30(优先级改为了24)中一个被调用的程序块的运行时间。

创建循环中断 OB30;在 OB30 中调用"RUNTIME"指令,创建DB1来存储指令所需变量,如图2所示;"RUNTIME"指令的第一次调用用来设置测量时间的起点,并将其保存在DB变量 "Memory"中来为第二次调用做参考;然后调用 要测量的程序块"Test";当程序块被执行后,"RUNTIME" 指令第二次调用,第二次调用来计算 "Test"程序块的运行时间并将结果(秒)写入DB变量 "Result"中。

图2. RUNTIME程序

测量结果

可使用TRACE功能创建变量"DB".Result的跟踪轨迹来记录FB1的运行时间,采样选择OB30。测得Test[FB1]程序块的运行时间在 137µs 到 154 µs之间.

图3. TRACE图表

注意: 对于测量程序运行时间,需要禁用程序状态,因为它会使测量结果失真。

上例给出了测量单个程序块的方法,测量整个程序及命令序列也是一样的,只需在想测量程序的起点调用RUNTIME指令,在程序的终点再次调用RUNTIME指令即可。

2.示例 2: 使用1500的"RT_INFO"指令进行时间测量

使用"RT_INFO"指令可以生成特定组织块、通信或用户程序运行时的统计信息。通过 "MODE"参数,你可以定义在"INFO"中读出哪种类型的运行时间 。

在下面的程序(图4)中,OB1中调用"RT_INFO"指令来输出不同模式的运行时间。

在 OB1 中调用 RT_INFO 指令,创建DB3来存储指令所需变量,如图4所示;在 OB 参数中指定 要测量的OB 编号,本例测量OB30(OB30中运行FB1功能块);在 MODE 参数中输入“1”(读取特定 OB 的运行时间);在 INFO 参数中,指定 LTIME 数据类型的变量(在本示例中,为“INFO”);在 RET_VAL 参数中,指定 INT 数据类型的变量,输出该指令的错误消息。

图4. RT_INFO程序

如表 1 所示,根据MODE的不同来测量S7-1500系统的几种运行时间。在S7-1500-R/H 系统中还可以使用MODE 50 到 55 测量 SYNCUP 系统状态相关的数据,详情请查看TIA Portal帮助文档。

测量结果

可使用TRACE功能创建变量"DB".runtimeResult的跟踪轨迹来记录OB30的运行时间,采样选择OB30。 图5展示了变量的记录图表,在这个例子中TestBlock"程序块的运行时间在 144 µs到 167 µs之间。

图5.TRACE图表

注意:CPU 从启动转换为 RUN 时,将再次启动所有测量。OB 的运行时间在第一个 OB 处理完成后才可用。第一次循环完成后,循环时间才可用。

建议 运行时间的长短取决于所用的CPU.如果您需要较短的运行时间,我们建议您使用高性能的CPU。

技术选型请点击头像工控小周

来源:邢邢科技智慧

相关推荐