为了计算终端设备的运行时间,您可以读出 CPU 的当前数据和时间值并计算两次时间的差值。

描述

图 1 所示为计算终端设备运行时间的实例。 为此,STEP 7 (TIA Portal) 提供了两个扩展指令"RD_SYS_T" (读取时间) 和 "T_DIFF" (时间差).。计算后的时间输出是所读取的数据之间的差值,也就是设备的运行时间。

FC2程序:

该块中"RD_SYS_T" 指令被连续两次带条件调用。

当输入参数 "startTime"信号为"1",第一个条件就满足,第一条指令"RD_SYS_T"就被执行。

当输入参数 "stopTime"信号为"1",第二个条件就满足,第二条指令"RD_SYS_T"就被执行。

图2所示是OB "Main"中调用FB "Timedifferent"的实例。

用于测量终端设备运行时间的指令:

步骤 1:"start" = "1" 并且 "stop" = "1"

两个“"RD_SYS_T” 指令同时读出CPU的当前日期和时间。这种情况下,“T_DIFF” 指令计算所得的两次时间值之差为0。

“T_DIFF” 的输出参数 "outTime" 值被复位为0。

步骤 2:开始时间测量:"startTime" = "1" 并且 "stopTime" = "0"

第一个 "RD_SYS_T" 指令不执行,从而停止了CPU时钟读取。所读取的最后 CPU 时钟值保存在静态变量中。

第二个“RD_SYS_T” 指令继续执行并将当前数据存储在第二个静态变量中。

两个静态变量的时间值之差通过指令 "T_DIFF"进行计算,并把结果存储于输出变量"outTime" 中。

步骤 3: 时间测量结束:"start" = "0" 并且 "stop" = "0"

第一个 "RD_SYS_T" 指令继续不执行。所读取的最后 CPU 时钟值仍然保存在静态变量中。

第二个 "RD_SYS_T" 指令也不再执行,也一样停止了CPU时钟读取。所读取的最后 CPU 时钟值仍然保存在静态变量中。

两个静态变量的时间值之差通过指令 "T_DIFF"进行计算。结果作为运行时间传送到输出参数 "outTime"。

注意

在启动新的时间测量之前,必须首先复位两个参数 "start" 和 "stop"为0。