为什么用 SFC 64 “TIME_TCK” 读取 S7-300 和 C7 的系统时间得不到正确值?

描述
SFC 64 以 ms 为单位从 1 计到 231-1,如果溢出则返回到 0 开始计数(循环计数)。该值存储在双字长度的空间,并可以被参数化。

然而,当 SFC 计数值高字节不断累积到达溢出,则 SFC 64 输出值错误。SFC 64值不能正确更新,并与前一时刻值相差很大。

修正
根据真实性来检查值(例如,差分测量方式),如果以 x ms时间间隔得到的值与时间间隔值相差很大,则应该放弃该值。原因如之前所描述,是对定时器不连续读取造成的。

所有的 S7-300 和 C7 都受到该问题的影响。

对于下面的固件为 V1.0.2 的设备,该问题已解决:

  • 集成 CPUs 312C,313C,313C-2DP,313C-2PTP,314C-2DP 和 314C-2PTP

  • 新 C7-635T 设备

固件版本为 V1.x 的设备没有升级选项。

  • 所有类型的 C7-621,623,624,626,633 和 634

  • CPU 312IFM,CPU 313,CPU 314,CPU 314IFM,CPU 315,CPU 315F,CPU 315-2DP 和 CPU 316-2DP

固件版本高于 V2.x 的设备不会发生该问题。

注意
CPU 318-2DP 和 S7-400 没有该问题,因为对计数值的读取是不间断地。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论