说明 可以使用 CPU 的系统时间来计算运行时间。系统时间是一个可以从 0 最大计数到 2147483647 ms 的计时器 。如果到达最大值,将从 0 重新开始计算(溢出)。 调用 SFC 64 "TIME_TCK",可以通过输出管脚 "RET_VAL" 读出当前系统时间。
可以使用系统时间计算终端设备的运行时间。使用指令 SFC64"TIME_TCK" 实现该功能。
指令
可以使用 CPU 的系统时间来计算运行时间。系统时间是一个可以从 0 最大计数到 2147483647 ms 的计时器 。如果到达最大值,将从 0 重新开始计算(溢出)。 调用 SFC 64 "TIME_TCK",可以通过输出管脚 "RET_VAL" 读出当前系统时间。
图. 1
为了计算两个事件(例如终端设备的启动和停止)之间的时间,需要两次调用 SFC 64。 如此就可以通过 DINT 的相减获得两次返回值(数据类型:Time) 的差值,这样就提供两次块调用之间的时间。最小时间步长和相应的系统时间精度如下:
S7-300: 10 ms
S7-400: 1 ms
系统时间仅受 CPU 的操作状态影响,但独立于循环周期时间。
使用FB205计算运行时间的例程
当上升沿信号触发参数引脚"startTime" ,激活 SFC 64 "TIME_TCK" 将系统时钟读入临时缓冲区。
当上升沿信号触发参数引脚 "endTime" 之后,再次激活 SFC 64 "TIME_TCK" 将系统时钟读入临时缓冲区。
当另外一个上升沿信号触发参数引脚 "getdiffTime"时,两次系统时间的差值被计算出,其结果也就是时间差值输出到管脚 "outDiffTime"。
图. 2
注意
上述例子显示了如何使用 FB205 计算设备运行时间,该时间必须小于系统所能记录的最大时间2147483647 ms。因为系统时间最大为 2147483647 ms ,相对应的最大运行时间为 24 天 + 20 小时 + 31 分钟 + 23 秒 + 647 微秒。 如果要使用更长运行时间的终端设备,必须通过检查系统时间的多次溢出来扩展 STEP 7 程序。
楼主最近还看过
西门子官网的资料搬过来有什么意义呢?
为何直接说明引用西门子官网呢?
西门子官网该文档地址:https://support.industry.siemens.com/cs/document/640451/%E5%9C%A8step7-v5-x-%E4%B8%AD%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%BB%88%E7%AB%AF%E8%AE%BE%E5%A4%87(%E4%BE%8B%E5%A6%82%E6%B0%B4%E6%B3%B5)%E7%9A%84%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4%EF%BC%9F?dti=0&lc=zh-CN