前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测量S7-1200/1500 CPU中完整程序、单个块或命令序列的运行时间

测量S7-1200/1500 CPU中完整程序、单个块或命令序列的运行时间

作者头像
科控物联
发布2022-03-29 21:30:06
2K0
发布2022-03-29 21:30:06
举报
文章被收录于专栏:科控自动化

测量指令概述

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

图1. 测量指令

实验环境和内容

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

软件:TIA V16 Professional

硬件:CPU 1511-1PN V2.8

示例程序

示例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: 使用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帮助文档。

模式

说明

说明

OB参数值

INFO数据类型

可用CPU版本

1

指定 OB 的运行时间

OB 的运行时间定义为 CPU 处理此 OB 的命令的时间段。因此不包含处理更高优先级 OB 和可能中断 OB 的通信任务所需的时间。因此,如果想要确定从处理 OB 的第一个命令到处理 OB 的最后一个命令(表示包括处理更高优先级 OB 和可能中断 OB 的通信任务)之间所用的完整时间段,请使用指令“RUNTIME”。

OB 编号

LTIME

S7-1500 V1.5

2

指定 OB 的最长运行时间

OB 编号

LTIME

S7-1500 V1.5

3

指定 OB 的最短运行时间

OB 编号

LTIME

S7-1500 V1.5

10

高优先级 OB 所用总运行时间的百分比平均值输出优先级高于循环程序 OB 的用户程序中使用的所有 OB 的运行时间 (ProgramCycle)。这些通常包括除启动 OB 以外的所有 OB 类型。CPU 确定了可以使用哪些 OB 及其优先级。这些信息包含在基本编程章节中。

平均时间段为 1 s。

不相关

UINT

S7-1500 V1.5

11

通信所用总运行时间的百分比平均值将输出通信过程在用户程序总运行时间中的百分比。

平均时间段为 1 s。返回的通信百分比值可大于 CPU 参数“通信产生的循环负载”(Cycle load due to communication) 中指定的值。如果已指定最短循环时间且该时间并非全部由用户程序所需,则会发生该现象。之后,剩余时间可重新用于通信进程。

不相关

UINT

S7-1500 V1.5

20

与 MODE 10 不同的是,其求值基于所执行的上一个程序循环。

如果自调用 RT_INFO 起上一循环的开始时间已超过 2 秒,则不执行计算。指令输出值 65535 (0xFFFF)。如果自调用 RT_INFO 起上一循环的开始时间已小于 1 ms,则评估已在调用 RT_INFO 前 1 ms 的时间开始。如果上一循环的持续时间不足 1 ms,则评估的执行周期会超过 1 ms,因此可跨多个循环执行。通过在 CPU 属性中分配最小循环时间,可以防止循环时间低于 1 ms。MODE 21:返回的通信百分比值可大于 CPU 参数“通信产生的循环负载”(Cycle load due to communication) 中指定的值。如果已指定最短循环时间且该时间并非全部由用户程序所需,则会发生该现象。之后,剩余时间可重新用于通信进程。

不相关

UINT

S7-1500 V1.7

21

与 MODE 11 不同的是,其求值基于所执行的上一个程序循环。

不相关

UINT

S7-1500 V1.7

23

最长循环时间,自上次从 STOP 切换到 RUN 以来的最长循环的持续时间。

这些时间对应于 TIA Portal 的“循环时间”(Cycle time) 对话框中“测量出的循环时间”(Cycle times measured) 值。可通过“在线与诊断 > 诊断 > 循环时间”(Online & Diagnostics > Diagnostics > Cycle time),打开该对话框。

不相关

LTIME

S7-1500 V1.7

24

最短循环时间,自上次从 STOP 转换到 RUN 以来的最短循环的持续时间。

不相关

LTIME

S7-1500 V1.7

25

当前/上一个循环时间,上一个循环的持续时间。

不相关

LTIME

S7-1500 V1.7

30

循环监视时间,允许的最大 CPU 程序持续时间。如果循环时间超出循环监视时间,CPU 将进入 STOP 模式或调用时间错误 OB。

这些时间对应于 TIA Portal 的“循环时间”(Cycle time) 对话框中“组态的循环时间”(Configured cycle time) 值。可通过“在线与诊断 > 诊断 > 循环时间”(Online & Diagnostics > Diagnostics > Cycle time),打开该对话框。

不相关

LTIME

S7-1500 V1.5

31

用户程序已组态最小循环时间的输出。如果已在 CPU 属性中指定最小循环时间,操作系统会延时启动新循环,直到达到最小循环时间。

不相关

LTIME

S7-1500 V1.5

32

已组态最大通信负载的输出(以百分比形式)

用于通信的循环负载的百分比在 CPU 属性中的“通信负载”(Communication load) 下指定。

不相关

LTIME

S7-1500 V1.5

测量结果

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

图5.TRACE图表

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

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

下表概述了各CPU位和字操作的处理时间

CPU

1511-1 PN1511F-1 PN1511T-1 PN

1513-1 PN1513F-1 PN

1515-2 PN1515F-2 PN1515T-2 PN

1516-3 PN/DP1516F-3 PN/DP

1517-3 PN/DP1517F-3 PN/DP1517T-3 PN/DP1517TF-3 PN/DP

1518-4 PN/DP1518F-4 PN/DP1518-4PN/DP ODK1518F-4PN/DP ODK

位操作处理时间

0.06 μs

0.04 μs

0.03 μs

0.01 μs

0.002 μs

0.001 μs

字操作处理时间

0.072 μs

0.048 μs

0.036 μs

0.012 μs

0.003 μs

0.002 μs

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测量指令概述
  • 实验环境和内容
  • 示例程序
    • 示例1: 用"RUNTIME"R指令测量S7-1200/S7-1500程序的运行时间
      • 示例 2: 使用1500的"RT_INFO"指令进行时间测量
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档