S7-1200硬件篇之讀懂CPU的內(nèi)部存儲(chǔ)區(qū)
CPU模塊的內(nèi)部集成了很多的資源,PLC的廠家通常會(huì)根據(jù)集成資源的不同,將該型號(hào)的CPU分成不同的系列,如西門子S7-1200的CPU模塊分為5個(gè)系列:1211C,1212C,1214C,1215C和1217C。在這眾多的資源中,存儲(chǔ)器是必不可少的一個(gè)。今天我們就來(lái)談?wù)凷7-1200系列CPU的內(nèi)部存儲(chǔ)器/區(qū)。這里稱之為"存儲(chǔ)器/區(qū)"是因?yàn)槲锢砩系膭澐忠话惴Q為存儲(chǔ)器,邏輯上的劃分一般稱為存儲(chǔ)區(qū)。

根據(jù)物理性質(zhì)的不同,CPU模塊的內(nèi)部存儲(chǔ)器可分為隨機(jī)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)和閃存/可擦除存儲(chǔ)器(Flash)。
隨機(jī)存儲(chǔ)器,英文名稱"Random Access Memory",簡(jiǎn)寫為RAM,其特點(diǎn)是訪問(wèn)速度快,價(jià)格低,可讀可寫,但是斷電后數(shù)據(jù)無(wú)法保存;
只讀存儲(chǔ)器,英文名稱"Read Only Memory",簡(jiǎn)寫為ROM,它內(nèi)部的數(shù)據(jù)只能讀,不能寫,斷電后可以保持。只讀存儲(chǔ)器一般用來(lái)存放PLC的操作系統(tǒng)。
閃存/可擦除存儲(chǔ)器(Flash EPROM),它的特點(diǎn)是數(shù)據(jù)可讀可寫,訪問(wèn)速度慢,非易失性,斷電后可保存。閃存一般用來(lái)存放用戶程序和數(shù)據(jù)。SIMATC的存儲(chǔ)卡就屬于這一類。

根據(jù)邏輯功能的不同,S7-1200的存儲(chǔ)區(qū)可分為用戶存儲(chǔ)區(qū)(User Meomory)和系統(tǒng)存儲(chǔ)區(qū)(System Memory);
用戶存儲(chǔ)區(qū)(User Meomory)包括裝載存儲(chǔ)區(qū)(load memory)、工作存儲(chǔ)區(qū)(work memory)和保持存儲(chǔ)區(qū)(Retentive memory)。
裝載存儲(chǔ)區(qū)(load memory)用來(lái)存放用戶的程序,數(shù)據(jù)和配置信息等,它是一種非易失型的存儲(chǔ)介質(zhì),物理性質(zhì)上屬于閃存/可擦除存儲(chǔ)器(Flash),功能相當(dāng)于計(jì)算機(jī)上的硬盤,裝載存儲(chǔ)區(qū)可以是存儲(chǔ)卡或者是CPU內(nèi)部的存儲(chǔ)芯片。當(dāng)我們向CPU下載程序的時(shí)候,程序就是存放在裝載存儲(chǔ)區(qū)中。對(duì)于1200系列CPU而言,1211C、1212C的內(nèi)部裝載存儲(chǔ)區(qū)的大小為1 MB;1214C、1215C、1217C的內(nèi)部裝載存儲(chǔ)區(qū)為4 MB,各個(gè)系列的CPU都支持用存儲(chǔ)卡擴(kuò)展裝載存儲(chǔ)區(qū)(上一篇文章我們談到S7-1200的存儲(chǔ)卡的一個(gè)功能是可以用來(lái)擴(kuò)大CPU的裝載存儲(chǔ)區(qū))。
工作存儲(chǔ)區(qū)(work memory)是一種易失型的存儲(chǔ)介質(zhì),在斷電的情況下數(shù)據(jù)會(huì)丟失,物理性質(zhì)上屬于隨機(jī)存儲(chǔ)器(RAM),功能相當(dāng)于計(jì)算機(jī)的內(nèi)存。CPU在執(zhí)行用戶程序時(shí),會(huì)把需要的數(shù)據(jù)從裝載存儲(chǔ)區(qū)拷貝到工作存儲(chǔ)區(qū)。工作存儲(chǔ)區(qū)的訪問(wèn)速度比裝載存儲(chǔ)區(qū)快的多,能滿足CPU高速運(yùn)算的需求。
CPU 1211C的工作存儲(chǔ)區(qū)為50KB(固件版本號(hào)為2.0的為25KB;3.0的為30KB);CPU 1212C的工作存儲(chǔ)區(qū)為75KB;CPU1214C的工作存儲(chǔ)區(qū)為100KB;CPU1215C的工作存儲(chǔ)區(qū)為125KB;CPU1217C的工作存取區(qū)大小為150KB;這里需要注意模塊的版本號(hào),低版本的存儲(chǔ)區(qū)會(huì)小一些。另外工作存儲(chǔ)區(qū)的大小是固定的,無(wú)法擴(kuò)展。
保持存儲(chǔ)區(qū)(Retentive memory)是一種非易失性存儲(chǔ)介質(zhì),可以在斷電時(shí)將某些工作存儲(chǔ)區(qū)的數(shù)據(jù)保存到這里,當(dāng)電源恢復(fù)時(shí)CPU會(huì)把保存的數(shù)據(jù)還原到原來(lái)的地址。1200系列CPU均有10 Kb的保持存儲(chǔ)區(qū)。
系統(tǒng)存儲(chǔ)區(qū)(System memory)包括輸入過(guò)程映像區(qū)(Input process image area)、輸出過(guò)程映像區(qū)(Output process image area)、位存儲(chǔ)區(qū)(bit memory)、臨時(shí)數(shù)據(jù)存儲(chǔ)區(qū)(Temporary memory)、數(shù)據(jù)塊存儲(chǔ)區(qū)(data block memory)。
CPU在每個(gè)循環(huán)周期的開始都會(huì)掃描外設(shè)的物理地址,并把得到的數(shù)據(jù)存放到輸入過(guò)程映像區(qū),該存儲(chǔ)區(qū)允許用戶程序以位、字節(jié)、字或者雙字的形式進(jìn)行訪問(wèn)。輸入過(guò)程映像區(qū)允許讀寫操作,但一般情況我們都是進(jìn)行讀操作。
你可以在地址的后面加上":P"來(lái)直接訪問(wèn)外設(shè)的內(nèi)容,比如"I0.3:P",這樣的指令會(huì)直接訪問(wèn)外設(shè)的內(nèi)容,而不是從輸入過(guò)程映像區(qū)讀取數(shù)據(jù)。外設(shè)內(nèi)容是不允許CPU進(jìn)行寫操作的,所以"I0.3:P"是只讀的。而"I0.3"是訪問(wèn)
CPU的輸入過(guò)程映像區(qū),它是外設(shè)數(shù)據(jù)的拷貝,所以可讀可寫。輸入過(guò)程映像區(qū)的數(shù)據(jù)在全局范圍都是可以訪問(wèn)的。
CPU在每個(gè)循環(huán)周期結(jié)束之前都會(huì)把輸出過(guò)程映像區(qū)的內(nèi)容復(fù)制到外設(shè)地址的輸出模塊中,與輸入過(guò)程映像區(qū)相同,輸出過(guò)程映像區(qū)允許用戶程序以以位、字節(jié)、字或者雙字的形式進(jìn)行訪問(wèn),該區(qū)域也是可讀可寫的。
如果你想把運(yùn)算的結(jié)果立即輸出到外設(shè)的物理地址,而不是輸出過(guò)程映像區(qū),可以在地址的后面加上":P",比如"Q0.1:P"。"Q0.1"與"Q0.1:P"的區(qū)別在于前者訪問(wèn)的是輸出過(guò)程映像區(qū),而后者則直接訪問(wèn)外設(shè)的物理輸出;前者可讀可寫,后者只允許進(jìn)行寫操作,若進(jìn)行讀操作會(huì)發(fā)生錯(cuò)誤。
位存儲(chǔ)區(qū)(bit Memory),即M區(qū),使用的頻率很高。M區(qū)的數(shù)據(jù)可讀可寫,可以位,字節(jié),字,雙字的形式進(jìn)行訪問(wèn),程序運(yùn)行時(shí)需要的很多中間變量都存放在M區(qū)。M區(qū)的數(shù)據(jù)可以在全局范圍內(nèi)進(jìn)行訪問(wèn),不會(huì)因?yàn)槌绦驂K調(diào)用結(jié)束而被系統(tǒng)收回。但要注意M區(qū)的數(shù)據(jù)在斷電后無(wú)法保存,若需要保存該數(shù)據(jù),請(qǐng)將該數(shù)據(jù)設(shè)置成斷電保存,系統(tǒng)會(huì)在電壓降低時(shí)自動(dòng)將其保存到保持存儲(chǔ)區(qū)。
怎樣設(shè)置呢?打開博途V13,在左側(cè)找到"PLC變量表(PLC tags)",雙擊,右側(cè)出現(xiàn)變量表的內(nèi)容,點(diǎn)擊"保持(retan)"圖標(biāo),如下圖:

出現(xiàn)保持存儲(chǔ)區(qū)的對(duì)話框,假設(shè)我們保存從MB0開始10個(gè)字節(jié),如下圖:

這樣我們就設(shè)置了從MB0到MB9總計(jì)10個(gè)字節(jié)的保持存儲(chǔ)區(qū),我們變量表中的相應(yīng)的變量后面的"保持(Retain)"屬性就被選中了,如下圖。

臨時(shí)存儲(chǔ)區(qū)(Temporary memory)用來(lái)存放FB或FC運(yùn)行過(guò)程中的臨時(shí)變量,它只在FB或FC被調(diào)用的過(guò)程中有效,調(diào)用結(jié)束后該變量的存儲(chǔ)區(qū)將被操作系統(tǒng)收回。臨時(shí)數(shù)據(jù)存放區(qū)的數(shù)據(jù)是局部有效的,臨時(shí)變量也稱為局部變量,它只能被調(diào)用的FB訪問(wèn)。臨時(shí)變量不能保存到保持存儲(chǔ)區(qū)。
數(shù)據(jù)塊存儲(chǔ)區(qū)(data block memory)用來(lái)存放程序的各種數(shù)據(jù),允許以位,字節(jié),字和雙字的形式進(jìn)行訪問(wèn),某些指令運(yùn)算需要的數(shù)據(jù)結(jié)構(gòu)也存放在數(shù)據(jù)塊存儲(chǔ)區(qū)中。數(shù)據(jù)塊分為全局?jǐn)?shù)據(jù)塊(Global DB)和背景數(shù)據(jù)塊(Instance DB);全局?jǐn)?shù)據(jù)塊存放的數(shù)據(jù)可以被所有的代碼訪問(wèn),而背景數(shù)據(jù)塊的數(shù)據(jù)只能被指定的FB訪問(wèn),數(shù)據(jù)塊中的數(shù)據(jù)具有保持性,在代碼運(yùn)行結(jié)束后不會(huì)被系統(tǒng)收回。
對(duì)CPU內(nèi)部的存儲(chǔ)器/區(qū)我們就介紹到這里,下一篇文章我們繼續(xù)介紹CPU的其它內(nèi)部資源。
長(zhǎng)按掃描下面的二維碼,關(guān)注“方正智芯”的原創(chuàng)文章,提供工業(yè)控制領(lǐng)域(PLC、單片機(jī)、通信)的技術(shù)和經(jīng)驗(yàn)的分享,持續(xù)關(guān)注,持續(xù)進(jìn)步。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
