西門子S7-200plc程序數(shù)據(jù)的斷電保存方法,主要可分三種,其數(shù)據(jù)斷電保存方法及特點(diǎn)如下:
一、在系統(tǒng)塊中設(shè)置斷電數(shù)據(jù)保持功能來保存數(shù)據(jù)。
在S7-200的編程中,系統(tǒng)塊中有一項(xiàng)功能為斷電數(shù)據(jù)保持設(shè)置,設(shè)置范圍包括V存儲(chǔ)區(qū)、M存儲(chǔ)區(qū)、時(shí)間繼電器T和計(jì)數(shù)器C(其中定時(shí)器和計(jì)數(shù)器只有當(dāng)前值可被保持,而定時(shí)器位或計(jì)數(shù)器位是不能被保持的)。其基本工作原是在PLC外部供電中斷時(shí),利用PLC內(nèi)部的超級電容供電,保持系統(tǒng)塊中所設(shè)置的斷電數(shù)據(jù)保持區(qū)域的數(shù)值保持不變,而將非保持區(qū)域的數(shù)據(jù)值歸零。由于超級電容容量的限制,在西門子的資料中宣稱只能保存幾天時(shí)間。對于M存儲(chǔ)區(qū)中的前十四個(gè)字節(jié)(即MB0-MB13),當(dāng)設(shè)為斷電數(shù)據(jù)保持,在PLC外部供電中斷時(shí),PLC內(nèi)部自動(dòng)將以上存儲(chǔ)區(qū)的數(shù)據(jù)轉(zhuǎn)移到EEPROM中,因此可實(shí)現(xiàn)斷電永久保存。
若需更長的RAM存儲(chǔ)器斷電數(shù)據(jù)保存時(shí)間,西門子公司可提供一個(gè)可選的電池卡,在超級電容耗盡后繼續(xù)提供電能,延長數(shù)據(jù)保存時(shí)間(約200天)。
二、在編程時(shí)建立數(shù)據(jù)塊來保存數(shù)據(jù)。
在程序設(shè)計(jì)的編程階段,可在編程中建立數(shù)據(jù)塊,并賦予需要的初始值,編程完成后隨程序一起下載到PLC的RAM存儲(chǔ)器中,CPU同時(shí)自動(dòng)將其轉(zhuǎn)存于EEPROM,作為EEPROM儲(chǔ)器中的V數(shù)據(jù)永存儲(chǔ)區(qū)。因EEPROM的數(shù)據(jù)保存不需要供電維持,所以可以實(shí)現(xiàn)永久保存。若在系統(tǒng)塊中相應(yīng)V存儲(chǔ)區(qū)未設(shè)為斷電數(shù)據(jù)保持,在每次PLC上電初始,CPU自動(dòng)將EEPROM中的V數(shù)據(jù)值讀入RAM的V存儲(chǔ)區(qū)。若相應(yīng)V存儲(chǔ)區(qū)設(shè)為斷電數(shù)據(jù)保持,在每次PLC上電初始,CPU檢測斷電數(shù)據(jù)保存是否成功。若成功,則保持RAM中的相應(yīng)V數(shù)據(jù)保持不變。若保存不成功,則將EEPROM中的相應(yīng)V數(shù)據(jù)值讀入RAM的V存儲(chǔ)區(qū)。此方法只適用于V數(shù)據(jù)的斷電數(shù)據(jù)保存。
三、在程序中用SMB31和SMW32來保存數(shù)據(jù)。
在程序中將要保存的V存儲(chǔ)器地址寫入SMW32,將數(shù)據(jù)長度寫入SMB31,并置SM31.7為1。在程序每次掃描的末尾,CPU自動(dòng)檢查SM31.7,如果為1,則將指定的數(shù)據(jù)存于EEPROM中,并隨之將SM31.7置為零,保存的數(shù)據(jù)會(huì)覆蓋先前EEPROM中V存儲(chǔ)區(qū)中的數(shù)據(jù)。在保存操作完成之前,不要改變RAM中V存儲(chǔ)區(qū)的值。存一次EEPROM操作會(huì)將掃描時(shí)間增加15至20毫秒。因?yàn)榇鍱EPROM的次數(shù)是有限制的(最少10萬次,典型值為100萬次),所以必須控制程序中保存的次數(shù),否則將導(dǎo)致EEPROM的失效。
結(jié)合以上的了解和工地調(diào)試的經(jīng)驗(yàn),在實(shí)際應(yīng)用中,若遇到需程序數(shù)據(jù)保持的時(shí)候,要多種方法結(jié)合運(yùn)用以達(dá)到最理想的結(jié)果。針對程序中需保存數(shù)據(jù)的不同,采取不同的方式實(shí)現(xiàn)。對于需在程序第一次運(yùn)行時(shí)進(jìn)行預(yù)置并在程序運(yùn)行過程中個(gè)別情況下進(jìn)行重新設(shè)置的數(shù)據(jù),如高度、荷重等相關(guān)標(biāo)定參數(shù),可在程序的數(shù)據(jù)塊中建立數(shù)據(jù),并賦予初始數(shù)值。同時(shí)在程序中編入SMB31和SMW32命令,在相關(guān)條件下對EEPROM的V數(shù)據(jù)區(qū)進(jìn)行重新保存,修改先前的初始值。示例如下,當(dāng)進(jìn)行參數(shù)設(shè)置時(shí),置M0.0為1,完成一次VD100的EEPROM存儲(chǔ)器保存操作。
對于程序運(yùn)行過程中數(shù)值變化比較頻繁,且需斷電長期保存的數(shù)據(jù),則可將數(shù)據(jù)存于MB0至MB13存儲(chǔ)區(qū),且系統(tǒng)塊的斷電數(shù)據(jù)保存設(shè)置中將相應(yīng)的M存儲(chǔ)區(qū)設(shè)為斷電數(shù)據(jù)保存。也可使用程序中的V存儲(chǔ)區(qū),在必要時(shí)如上圖所示進(jìn)行一次程序數(shù)據(jù)存儲(chǔ),而在斷電數(shù)據(jù)保持設(shè)置中可選取,也可不選取。