如何在 S7-200 CPU 断电后保持高速计数器的当前值1 问题描述 S7-200 的断电数据保持不支持高速计数器的范围设置,因此高速计数器的当前值在 CPU 每次断电后都会复位为数值 0。要使 S7-200 高速计数器的当前值在 CPU 断电重启后依然保持,可以通过以下的编程来实现。 2 实现方法 在此以高速计数器 0 的模式 1 为例来说明如何在 S7-200 CPU 断电后保持高速计数器的当前值,具体可参考以下三个部分的编程来实现: 首先,在除了第一个扫描周期之外的其它周期,将高速计数器 0 的当前值HC0 传送到寄存器 VD1000 中,如下图 1 所示,以保证寄存器 VD1000 始终存储的是 HC0 的当前值。 图 1 传送当前值到寄存器其次,在上电的第一周期将寄存器 VD1000 存储的数值传送到高速计数器的当前值,保证高速计数器以 VD1000 为初始值开始计数,并初始化高速计数器 0,如下图 2 所示: 图 2 初始化 HSC0 最后,在系统块的断电数据保持处设置寄存器 VD1000 为断电保持区域,如下图 3 所示。需要注意的是 CPU224 及其以上的型号最多支持 100 个小时(理论值)的断电保持时间,如果断电时间超过 100 个小时的话,可以考虑增加电池卡;或者将当前值保存到 MB0-MB13 这 14 个字节的存储单元。 图 3 设置断电数据保持