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