臨沂西門子代理商
MB0—MB13如果在系統(tǒng)塊中設(shè)置成掉電保持區(qū)域,如圖2紅框中所示,并將系統(tǒng)塊下載到CPU之后,則這14個字節(jié)的數(shù)據(jù)在掉電的瞬間會將數(shù)值寫入EEPROM中,如果掉電時間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)保持?jǐn)?shù)據(jù)的目的。
注意:實現(xiàn)該功能一定要將修改過的系統(tǒng)塊下載到CPU中。
2、數(shù)據(jù)塊中定義的數(shù)據(jù),如圖3所示,當(dāng)下載數(shù)據(jù)塊的時候,同時會將定義的數(shù)據(jù)下載到EEPROM中,這樣,當(dāng)?shù)綦姇r間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)塊中定義的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)保持?jǐn)?shù)據(jù)的目的。也就是恢復(fù)成數(shù)據(jù)的初始設(shè)置值。
注意:實現(xiàn)該功能一定要將定義好數(shù)據(jù)的數(shù)據(jù)塊下載到CPU中。
圖3
3、使用SMB31和SMW32控制字來實現(xiàn)將V區(qū)的數(shù)據(jù)存到EEPROM中
特殊存儲器字節(jié)31 (SMB31)命令S7-200將V存儲區(qū)中的某個值復(fù)制到存儲器的V存儲區(qū),置位SM31.7提供了初始化存儲操作的命令。特殊存儲器字32 (SMW32)中存儲所要復(fù)制數(shù)據(jù)的地址。如圖4為S7-200系統(tǒng)手冊內(nèi)關(guān)于SMB31和SMW32的使用說明。
圖4
臨沂西門子代理商
采用下列步驟來保存或者寫入V存儲區(qū)中的一個特定數(shù)值:
1. 將要保存的V存儲器的地址裝載到SMW32中。
2. 將數(shù)據(jù)長度裝載入SM31.0和SM31.1。具體含義如圖4所示。
3. 將SM31.7置為1。
圖5
注意:如果在數(shù)據(jù)塊中定義了某地址的數(shù)據(jù),而又使用這種辦法存儲同樣地址的數(shù)據(jù),則當(dāng)CPU內(nèi)超級電容或電池沒電時,CPU再上電時將采用SMB31和SMW32存儲的數(shù)據(jù)。
問題8:EEPROM寫入次數(shù)的統(tǒng)計?
回答:每次下載程序塊/數(shù)據(jù)塊/系統(tǒng)塊或者執(zhí)行一次SMB31.7置位的操作都算作對EEPROM的一次寫操作,所以請注意在程序中一定不要每周期都調(diào)用SMB31/SMW32用于將數(shù)據(jù)寫入EEPROM內(nèi),否則CPU將很快報廢。
問題9:不使用數(shù)據(jù)塊的方法,如何在程序中實現(xiàn)不止一個V區(qū)數(shù)據(jù)的存儲?
回答:由于SMB31/SMW32一次多只能送入一個V區(qū)雙字給EEPROM區(qū)域,因而當(dāng)有超過一個雙字的數(shù)據(jù)需要送入EEPROM中時,需要程序配合實現(xiàn)。具體操作方法可參照如下的例子,即使用SMB31/SMW32送完一個數(shù)據(jù)(字節(jié)/字/雙字)之后,通過一個標(biāo)志位(如M0.0)來觸發(fā)下一個SMB31/SMW32操作,之后需要將上一個標(biāo)志位清零,以用于下一次的存儲數(shù)據(jù)的操作。
由于SM31.7在每次操作結(jié)束之后都自動復(fù)位,因而不能使用它作為第二次觸發(fā)操作的條件。
以上程序僅供參考。
或者可以參考如下FAQ,多次調(diào)用指令庫用以存儲多個V區(qū)變量到EEPROM存儲區(qū)中:
如何在 CPU 內(nèi)部 EEPROM 存儲空間中保存變量區(qū)域?
17471561
問題10:定時器和計數(shù)器以及MB14-MB31的掉電保持性能?
回答:計數(shù)器和TONR型的定時器(T0-T31,T64-T95)能夠?qū)崿F(xiàn)掉電保持。這些區(qū)域只能由超級電容和電池來進(jìn)行數(shù)據(jù)的掉電保持,他們并沒有對應(yīng)的EEPROM保持存儲區(qū)。當(dāng)超過超級電容和電池供電的時間之后,這些計數(shù)器和TONR定時器的數(shù)據(jù)全部清零。
TON和TOF型的定時器(T32-T63,T96-T255)沒有掉電保持?jǐn)?shù)據(jù)的功能。請不要在系統(tǒng)塊中設(shè)置這些區(qū)域為掉電保持,如圖6所示為錯誤做法:
圖6
按上述做法設(shè)置之后,下載系統(tǒng)塊時會導(dǎo)致如下錯誤發(fā)生:
圖7
所以請不要將T32-T63,T96-T255的定時器設(shè)為掉電保持區(qū)域。
問題11:CPU內(nèi)具備斷電保持性的數(shù)據(jù)區(qū)為何會丟失?
以下情況會導(dǎo)致CPU內(nèi)數(shù)據(jù)清零:
1. 沒有插入電池卡的CPU斷電時間過長,內(nèi)部超級電容放電完畢,TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
2. 電池卡使用時間過長,使之沒電了, TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
3. 插在CPU上的存儲卡內(nèi)程序/數(shù)據(jù)與CPU內(nèi)部RAM中運(yùn)行的程序/數(shù)據(jù)不符,一上電時會導(dǎo)致原有數(shù)據(jù)/程序的丟失。
4. CPU損壞