在 S7-1200/S7-1500 中,如何测量一个完整程序、子程序或特定组织块的运行时间?

在STEP 7(TIA Portal)中,可以使用“RUNTIME”指令来测量完整程序、单个块或命令序列的运行时间。使用“RT_INFO”指令,可以读取特定组织块、通信或用户程序运行时的统计信息。

描述
“RUNTIME”指令在“基本指令>程序控制指令”菜单下,“RT_INFO”指令在“扩展指令>诊断”菜单下。下面的示例展示了计算程序运行时间。

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

程序
使用 'RUNTIME' 指令可以测量整个程序、单个块或命令序列的运行时间。
如果想测量单个块或命令序列的程序运行时间。如果可能,请将您的程序代码移动到具有更高优先级的OB中,这样它就不会被通信和其它OB中断或延迟。

图1展示了如何测量OB30中一个被调用的程序块的运行时间,优先级为24.

'RUNTIME'指令的第一次调用用来设置测量时间的起点,并将其保存在DB变量 'Memory'中来为第二次调用做参考。

然后调用 'TestBlock' 程序块。

当程序块被执行后,'RUNTIME' 指令第二次调用,第二次调用来计算 'TestBlock'程序块的运行时间并将结果(秒)写入DB变量 'runtimeResult'中。

图. 1

总结
要记录运行时间,需要使用'DB'.runtimeResult创建一个跟踪轨迹(TRACE),采样选择OB30.
图. 2展示了变量的记录图表.在这个例子中TestBlock'程序块的运行时间在 20.5 到 23 µs之间.

注意
对于测量程序运行时间,需要禁用程序状态,因为它会使测量结果失真。
为了能够在状态中显示当前值,CPU重新编译需要显示的程序段。
根据编辑器中显示的内容,将增加子程序的运行时间。

图. 2

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

程序
使用“RT_INFO”指令可以生成特定组织块、通信或用户程序运行时的统计信息。通过 'MODE'参数,你可以定义在“INFO”中读出那种类型的运行时间 。在下面的例子(图3)中,OB1中调用'RT_INFO'指令来输出不同模式的运行时间。在数据块中,使用变量 'obNr' 定义要测量的OB块,使用 'mode'变量可以选择要测量的模式 。

可以测量下面几种运行时间:

MODE = 1     特定OB的运行时间

MODE = 2     特定OB的最大运行时间

MODE = 3     特定OB的最小运行时间

MODE = 23   最长循环时间(与OB 无关)

MODE = 24   最短循环时间(与OB 无关)

MODE = 25   当前/上一个循环时间,上一个循环的持续时间(与OB 无关)

图. 3

总结

要记录运行时间,需要使用'DB'.runtimeResult创建一个跟踪轨迹(TRACE),采样选择OB30.
图. 4展示了变量的记录图表.在这个例子中TestBlock'程序块的运行时间在 31 到 33 µs之间.

注意
对于测量程序运行时间,需要禁用程序状态,因为它会使测量结果失真。
为了能够在状态中显示当前值,CPU重新编译需要显示的程序段。
根据编辑器中显示的内容,将增加子程序的运行时间。

图. 4

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

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

文章来源:百舜NET,本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。
(0)

相关推荐