周翔
摘 要:西門子S7-300系列PLC是在自動(dòng)控制領(lǐng)域廣泛使用的可編程邏輯控制器,有著較高的產(chǎn)品熟識(shí)度和市場(chǎng)占有率。本文圍繞S7-300的存儲(chǔ)為核心,結(jié)合項(xiàng)目實(shí)施經(jīng)驗(yàn),介紹該P(yáng)LC存儲(chǔ)方面的概念、使用和維護(hù)。
關(guān)鍵詞:PLC;存儲(chǔ)器
1 S7-300存儲(chǔ)概述
S7-300PLC的存儲(chǔ)區(qū)域我們分成四個(gè)部分:裝載存儲(chǔ)器、工作寄存器、系統(tǒng)存儲(chǔ)器、保持存儲(chǔ)器。
1)系統(tǒng)存儲(chǔ)器:我們使用系統(tǒng)存儲(chǔ)器存放以下數(shù)據(jù):位存儲(chǔ)器、定時(shí)器和計(jì)數(shù)器、輸入輸出過程映像區(qū)、中斷堆棧和塊堆棧、本地?cái)?shù)據(jù)堆棧的臨時(shí)存儲(chǔ)。
2)工作寄存器:工作寄存器用來存放CPU運(yùn)行時(shí)讀取的程序數(shù)據(jù)。工作寄存器RAM集成在CPU中,通過電源或后備電池保持其內(nèi)容。S7-300CPU的工作存儲(chǔ)器無法擴(kuò)展。
3)裝載存儲(chǔ)器:我們使用裝載存儲(chǔ)器存儲(chǔ)用戶程序,不包括符號(hào)和注釋(這些保存在工程師站的PLC項(xiàng)目中)。裝載存儲(chǔ)器的硬件可以是存儲(chǔ)卡、CPU集成的RAM或EPROM。
4)保持存儲(chǔ)器:保持存儲(chǔ)器具有失電后存儲(chǔ)數(shù)據(jù)保持的特點(diǎn)。設(shè)置硬件組態(tài)的相關(guān)參數(shù),可以在CPU掉電后,也無后備電池的情況下,保存指定的位存儲(chǔ)器、數(shù)據(jù)塊、定時(shí)器、計(jì)數(shù)器數(shù)據(jù)。在設(shè)置CPU參數(shù)時(shí)一定要指定需要保持的區(qū)域。(注:S7-400PLC無保持型RAM,故即使指定了保持?jǐn)?shù)據(jù)區(qū),CPU斷電時(shí)若無后備電池,所有數(shù)據(jù)也將丟失。)
當(dāng)Step7執(zhí)行程序下載時(shí),會(huì)把諸如工程師站的編程設(shè)備中的用戶程序下載到CPU的裝載存儲(chǔ)器。同時(shí),運(yùn)行時(shí)使用的邏輯和數(shù)據(jù)導(dǎo)入到工作存儲(chǔ)器(例如OB1和DB數(shù)據(jù)塊)。當(dāng)CPU斷電并且無后備電池時(shí),在工作存儲(chǔ)器中指定的具有保持功能的DB數(shù)據(jù)塊、在系統(tǒng)存儲(chǔ)器中指定的具有保持功能的定時(shí)器、計(jì)數(shù)器、位存儲(chǔ)器會(huì)把數(shù)據(jù)寫入保持存儲(chǔ)器中?;謴?fù)上電時(shí),上述數(shù)據(jù)重新寫入,保證了運(yùn)行數(shù)據(jù)不丟失。
2 存儲(chǔ)器/卡的使用
按CPU裝載存儲(chǔ)器類型的不同,目前市場(chǎng)廣泛使用的S7-300PLC大致可以分為兩類:新型S7-300 CPU、標(biāo)準(zhǔn)型S7-300 CPU。
2.1 新型S7-300 CPU
此類CPU使用MMC卡作為裝載存儲(chǔ)器,不需要后備電池,運(yùn)行免維護(hù)。由于它不含內(nèi)置的裝載存儲(chǔ)器,所以MMC卡是該類型CPU不可缺少的組件,用戶程序直接下載和存儲(chǔ)在MMC卡中。
2.1.1用于新型S7-300CPU的MMC卡
MMC卡是一種FEPROM卡,作為控制器的僅有裝載存儲(chǔ)器存儲(chǔ)用戶數(shù)據(jù)。當(dāng)控制器失電時(shí),CPU會(huì)自動(dòng)將內(nèi)置工作寄存器中的邏輯、數(shù)據(jù)寄存器中的DB數(shù)據(jù)拷貝到MCC卡中,從而保證實(shí)時(shí)數(shù)據(jù)不會(huì)丟失。CPU313/314/315-2DP支持的MCC卡可以達(dá)到8MB,其他CPU最高支持4MB。在0-60℃的環(huán)境下,MCC卡可進(jìn)行擦寫操作達(dá)100000次。
2.1.2 MMC卡寫操作
MCC卡是新型CPU具有的唯一裝載存儲(chǔ)器,任何形式的下載操作都直接寫入MCC卡。下載的途徑有以下幾種:一是CPU下載:用Step7中的下載按鍵直接下載,或使用Step7中“PLC>下載”菜單命令下載。二是使用Step7中的“PLC>下載程序到存儲(chǔ)卡”命令,把整個(gè)程序下載到CPU中。該命令只能整體下載程序,同時(shí)擦除原MCC卡中的內(nèi)容,不能部分下載邏輯塊。三是使用Step7中的“PLC>拷貝RAM到ROM”指令,即把工作寄存器的數(shù)據(jù)拷貝到MMC卡,同時(shí)擦除原MMC卡中內(nèi)容。此項(xiàng)操作只能CPU處于停止?fàn)顟B(tài)下才能使用,用于將CPU的當(dāng)前運(yùn)行狀態(tài)(例如DB塊的運(yùn)行結(jié)果)復(fù)制到MMC卡。這樣下次使用MRES執(zhí)行復(fù)位時(shí),DB塊數(shù)值就能恢復(fù)當(dāng)前值而不是初始值。四是將MMC卡插入PG,使用Step7中的“文件> S7存儲(chǔ)卡>打開”命令打開存儲(chǔ)卡,再用“PLC >保存到存儲(chǔ)卡”將程序文件寫入MMC卡。
2.1.3 MMC卡擦除
使用MRES或者“清除/復(fù)位”不能擦除MMC卡中數(shù)據(jù),只能擦除工作寄存器數(shù)據(jù),同時(shí)復(fù)位位存儲(chǔ)、定時(shí)器、計(jì)數(shù)器及DB塊的當(dāng)前值,復(fù)位后控制器自動(dòng)將MMC卡存放的程序復(fù)制到工作寄存器。
可用以下方法擦除MMC卡數(shù)據(jù)。一是運(yùn)用Step7中的“視圖>在線”菜單命令,打開在線邏輯,選中要?jiǎng)h除的塊,用“刪除”鍵,即可直接刪除卡中的程序塊;二是下載一個(gè)空程序,用Step7中的“PLC>下載程序到存儲(chǔ)卡”菜單命令;三是當(dāng)出現(xiàn)如下情況時(shí),需要被動(dòng)格式化操作:裝載用戶程序時(shí)CPU失電、向MMC卡導(dǎo)入數(shù)據(jù)時(shí)CPU失電、CPU中的硬件組態(tài)實(shí)際配置不同、卡中存在CPU無法識(shí)別的數(shù)據(jù)。
2.2 標(biāo)準(zhǔn)型S7-300CPU
2.2.1 FEPROM卡介紹
這里的標(biāo)準(zhǔn)型是指不使用MMC卡的S7-300 PLC。目前該P(yáng)LC已不再發(fā)售,在用戶現(xiàn)場(chǎng)仍有較大保有量。其特點(diǎn)是含有內(nèi)部集成的裝載存儲(chǔ)器,允許使用FEPROM卡來擴(kuò)大容量。FEPROM卡更重要的功能是備份程序。即在CPU失電并且無后備電池時(shí),重新上電,CPU可從FEPROM卡自動(dòng)復(fù)制程序到工作寄存器中。
2.2.2 FEPROM卡寫操作
一是使用Step7中的“PLC>下載程序到存儲(chǔ)卡”命令,這時(shí)用戶程序只能整體寫入,而不能對(duì)單個(gè)或部分程序塊進(jìn)行操作。每執(zhí)行一次下載操作都會(huì)擦除卡里原程序,同時(shí)會(huì)擦除內(nèi)置RAM的數(shù)據(jù)。
二是運(yùn)用Step7中的“PLC>拷貝RAM到ROM”指令,可把工作寄存器的內(nèi)容復(fù)制到FEPROM卡,同時(shí)擦除FEPROM卡中原內(nèi)容。這項(xiàng)操作用于保存CPU當(dāng)前運(yùn)行值,這樣復(fù)位后,DB塊的值就會(huì)恢復(fù)到保存過的值。
三是使用PG,Step7命令“文件>S7存儲(chǔ)卡>打開”打開存儲(chǔ)卡,用“PLC >保存到存儲(chǔ)卡”將程序文件寫入FEPROM卡。
2.2.3 FEPROM卡擦除
當(dāng)前,擦除FEPROM卡中數(shù)據(jù)的正式途徑只有一種,即用編程器或讀卡器擦除卡中數(shù)據(jù),執(zhí)行存儲(chǔ)器復(fù)位無法完全擦除卡里程序。即使如此,我們依舊可是使用其他可行的方法清除FEPROM卡中內(nèi)容:
一是在Step7中使用“下載程序到存儲(chǔ)卡”下載一個(gè)空程序到FEPROM卡中,可以清空卡中內(nèi)容。但如果下載一個(gè)超出工作寄存器或FEPROM卡容量的程序到FEPROM卡時(shí),會(huì)提示警告,下載仍可繼續(xù)執(zhí)行,完成后會(huì)彈出出錯(cuò)消息,PLC故障燈點(diǎn)亮。此時(shí)查看FEPROM卡中內(nèi)容,發(fā)現(xiàn)為空,即刪除了卡中數(shù)據(jù),可再次下載新程序到卡中。
二是在線使用MRES復(fù)位工作寄存器中所有內(nèi)容,再使用Step7中命令“拷貝RAM到ROM”可將FEPROM卡中數(shù)據(jù)完全擦除。
三是當(dāng)CPU設(shè)置了讀寫保護(hù)且密碼丟失,則只能使用PG或讀卡器來刪除FEPROM卡中內(nèi)容。對(duì)于內(nèi)置RAM裝載存儲(chǔ)器的CPU設(shè)置了讀寫保護(hù),使用“下載程序到存儲(chǔ)卡”命令下載一個(gè)空程序到CPU中,可以清除CPU的密碼。