CPU | 1511-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"中。
总结
要记录运行时间,需要使用"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重新编译需要显示的程序段。
根据编辑器中显示的内容,将增加子程序的运行时间。
建议
运行时间的长短取决于所用的CPU.如果您需要较短的运行时间,我们建议您使用高性能的CPU。
下表概述了各CPU位和字操作的处理时间
产品推荐