如何在 STEP 7 (TIA Portal) 中计算终端设备的运行时间

为了计算终端设备的运行时间,您可以读出 CPU 的当前数据和时间值并计算两次时间的差值。STEP 7 (TIA Portal) 提供了两个扩展指令"RD_SYS_T" (读取时间) 和 “T_DIFF” (时间差).。计算后的时间输出是所读取的数据之间的差值,也就是设备的运行时间。

在以SCL编程的FB “Timedifferent” 中, “RD_SYS_T” 指令被连续两次带条件调用。

  • 当输入参数 “startTime"信号为"0”,第一个条件就满足,第一条指令"RD_SYS_T"就被执行。
  • 当输入参数 “stopTime"信号为"0”,第二个条件就满足,第二条指令"RD_SYS_T"就被执行。
    接着IF指令后面的是"T_DIFF"指令的调用。具体如下:

步骤 1:“startTime” = “0” 并且 “stopTime” = “0”

  • 两个“"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: 时间测量结束:“startTime” = “1” 并且 “stopTime” = “1”

  • 第一个 “RD_SYS_T” 指令继续不执行。所读取的最后 CPU 时钟值仍然保存在静态变量中。
  • 第二个 “RD_SYS_T” 指令也不再执行,也一样停止了CPU时钟读取。所读取的最后 CPU 时钟值仍然保存在静态变量中。
  • 两个静态变量的时间值之差通过指令 "T_DIFF"进行计算。结果作为运行时间传送到输出参数 “outTime”。

注意

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

下面表格列出了 FB “Timedifferent” 输入和输出参数,以及相关数据类型。

参数					接口 		数据类型 									说明 

startTime Input Bool 控制第一个 "RD_SYS_T"指令
stopTime Input Bool 控制第二个 "RD_SYS_T"指令
outTime Output Time 时间差值输出 =运行时间

你可能感兴趣的:(方法及案例)