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

时间:2021-06-29点击次数:234

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

 CPU1511-1 PN
1511F-1 PN
1511T-1 PN 
1513-1 PN
1513F-1 PN 
1515-2 PN
1515F-2 PN
1515T-2 PN 
1516-3 PN/DP
1516F-3 PN/DP 
1517-3 PN/DP
1517F-3 PN/DP
1517T-3 PN/DP
1517TF-3 PN/DP
1518-4 PN/DP
1518F-4 PN/DP
1518-4PN/DP ODK
1518F-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

描述
“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 无关)



Fig. 3 


总结

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

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


图. 4

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

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

 


http://shtxjd.cn.b2b168.com

上一篇:删除 SQL 实例

产品推荐