S7-200 的斷電數據保持不支持高速計數器的范圍設置,因此高速計數器的當前值在CPU每次斷電后都會復位為數值0。要使S7-200高速計數器的當前值在CPU斷電重啟后依然保持,可以通過以下的編程來實現。
在此以高速計數器0的模式1為例來說明如何在S7-200 CPU斷電后保持高速計數器的當前值,具體可參考以下三個部分的編程來實現: 首先,在除了第一個掃描周期之外的其它周期,將高速計數器0的當前值HC0傳送到寄存器VD1000中,如下圖1所示,以保證寄存器VD1000始終存儲的是HC0的當前值。
其次,在上電的第一周期將寄存器VD1000 存儲的數值傳送到高速計數器的當前值,保證高速計數器以VD1000 為初始值開始計數,并初始化高速計數器0 ,如下圖2 所示:
圖2 初始化HSC0
最后,在系統塊的斷電數據保持處設置寄存器VD1000 為斷電保持區域,如下圖3 所示。需要注意的是CPU224 及其以上的型號最多支持100 個小時(理論值)的斷電保持時間,如果斷電時間超過100 個小時的話,可以考慮增加電池卡;或者將當前值保存到MB0-MB13 這14 個字節的存儲單元。
|