描述
图 1 所示为计算终端设备运行时间的实例。为此,STEP 7 (TIA Portal) 提供了两个扩展指令"RD_SYS_T" (读取时间) 和 "T_DIFF" (时间差).。计算后的时间输出是所读取的数据之间的差值,也就是设备的运行时间。
图1
条目中的库包含了以SCL编程的FB "Timedifferent" , 该块中"RD_SYS_T" 指令被连续两次带条件调用。
- 当输入参数 "startTime"信号为"0",第一个条件就满足,第一条指令"RD_SYS_T"就被执行。
- 当输入参数"stopTime"信号为"0",第二个条件就满足,第二条指令"RD_SYS_T"就被执行。
接着IF指令后面的是"T_DIFF"指令的调用。图2所示是OB "Main"中调用FB "Timedifferent"的实例。
图 2
用于测量终端设备运行时间的指令:
步骤 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 | 时间差值输出 =运行时间 |
关于系统时间偏差的注意事项
系统时间和系统时钟的偏差在计算运行时间时没有被考虑进去。本地时间的不正确(同步)也会影响系统,作为偏差(负时间差)进入计算。
关于以上两个扩展指令的更多信息参考STEP 7 (TIA Portal)在线帮助如下,
RD_SYS_T: Read time
T_DIFF: Time difference。
下载
STEP 7 (TIA Portal) 软件的库包含上述的功能块,将 Zip 文件解压到硬盘的独立目录中,然后就可以用STEP 7 (TIA Portal)来打开和编辑已解压的库。
注意
只能在STEP 7 (TIA Portal) 软件中打开编辑该库,更多信息参见库文件,条目号:37364723.
52258130_Timedifferent_Lib_STEP7_TIA_Portal_V13.zip (1,0 MB)
创建环境
此 FAQ 中的屏幕截图和下载文件都是通过STEP 7 (TIA Portal) V13 + SP1创建。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322749.html