eeprom的寫入分為如下幾種情況:
1、mb0—mb13的設(shè)置,只需要在系統(tǒng)塊—斷電數(shù)據(jù)保持中設(shè)置即可。
默認(rèn)情況下,系統(tǒng)塊設(shè)置如下圖藍(lán)框中所示,即mb14—mb31,這些區(qū)域沒有對應(yīng)的eeprom區(qū)域,無須考慮eeprom寫入次數(shù)限制。
圖1
mb0—mb13如果在系統(tǒng)塊中設(shè)置成掉電保持區(qū)域,如圖1紅框中所示,并將系統(tǒng)塊下載到cpu之后,則這14個(gè)字節(jié)的數(shù)據(jù)在掉電的瞬間會將數(shù)值寫入eeprom中,如果掉電時(shí)間超過超級電容和電池的保持時(shí)間之后,再上電時(shí),cpu會將eeprom中存儲的數(shù)據(jù)數(shù)值寫回到ram中對應(yīng)的存儲區(qū),實(shí)現(xiàn)永久保持?jǐn)?shù)據(jù)的目的。
注意:實(shí)現(xiàn)該功能一定要將修改過的系統(tǒng)塊下載到cpu中。
2、數(shù)據(jù)塊中定義的數(shù)據(jù),如圖3所示,當(dāng)下載數(shù)據(jù)塊的時(shí)候,同時(shí)會將定義的數(shù)據(jù)下載到eeprom中,這樣,當(dāng)?shù)綦姇r(shí)間超過超級電容和電池的保持時(shí)間之后,再上電時(shí),cpu會將eeprom中存儲的數(shù)據(jù)塊中定義的數(shù)據(jù)數(shù)值寫回到ram中對應(yīng)的存儲區(qū),實(shí)現(xiàn)永久保持?jǐn)?shù)據(jù)的目的。也就是恢復(fù)成數(shù)據(jù)的初始設(shè)置值。
注意:實(shí)現(xiàn)該功能一定要將定義好數(shù)據(jù)的數(shù)據(jù)塊下載到cpu中。
圖2
3、使用smb31和smw32控制字來實(shí)現(xiàn)將v區(qū)的數(shù)據(jù)存到eeprom中
特殊存儲器字節(jié)31 (smb31)命令s7-200將v存儲區(qū)中的某個(gè)值復(fù)制到永久存儲器的v存儲區(qū),置位sm31.7提供了初始化存儲操作的命令。特殊存儲器字32 (smw32)中存儲所要復(fù)制數(shù)據(jù)的地址。如圖3為s7-200系統(tǒng)手冊內(nèi)關(guān)于smb31和smw32的使用說明。
圖3
采用下列步驟來保存或者寫入v存儲區(qū)中的一個(gè)特定數(shù)值:
1. 將要保存的v存儲器的地址裝載到smw32中。
2. 將數(shù)據(jù)長度裝載入sm31.0和sm31.1。具體含義如圖3所示。
3. 將sm31.7置為1。
圖4
注意:如果在數(shù)據(jù)塊中定義了某地址的數(shù)據(jù),而又使用這種辦法存儲同樣地址的數(shù)據(jù),則當(dāng)cpu內(nèi)超級電容或電池沒電時(shí),cpu再上電時(shí)將采用smb31和smw32存儲的數(shù)據(jù)。