西門子S7-400H的內(nèi)存(Memory)結(jié)構(gòu)
公司所售出的產(chǎn)品,全新原裝,質(zhì)保一年、但凡發(fā)現(xiàn)有任何質(zhì)量問題,可無條件退換(非人為損壞).
希殿電氣技術(shù)(上海)有限公司(西門子合作伙伴)
聯(lián) 系 人 :康經(jīng)理(銷售工程師)
在線商務(wù)Q Q :192061030
聯(lián) 系 手 機(jī) :18621061383(微信)
聯(lián) 系 電 話 :021-60541249
公 司 傳 真 :021-57271268
郵 箱 :192061030@qq.com
S7-400H控制器的內(nèi)存結(jié)構(gòu)與優(yōu)化
S7-400型控制器的內(nèi)存按照功能的不同,可以分為:
系統(tǒng)內(nèi)存(System Memory)--- 控制器的自身功能(M、T、C等)
工作內(nèi)存(work Memory)--- 用于運(yùn)行程序;
裝載內(nèi)存(Load Memory)--- 用于裝載程序,可以通過存儲卡擴(kuò)展;
其中,工作內(nèi)存部分又可以細(xì)分為:
代碼工作內(nèi)存(Code Memory)--- 用于運(yùn)行程序的代碼部分;
數(shù)據(jù)工作內(nèi)存(Data Memory)--- 用于運(yùn)行程序的數(shù)據(jù)部分;
S7-400型控制器的內(nèi)存按照集成方式的不同,可以分為:
集成內(nèi)存(Integrated)--- 直接集成在控制器內(nèi)部隨控制器一起提供,無需額外訂購;
擴(kuò)展內(nèi)存(Expanded)--- 通過擴(kuò)展存儲卡的方式擴(kuò)展提供,需要額外訂購;
一般情況下,控制器的工作內(nèi)存不可擴(kuò)展,而裝載內(nèi)存則可以通過FEPROM或RAM的方式進(jìn)行擴(kuò)展。如果希望和集成的RAM裝載內(nèi)存無縫擴(kuò)展使用,則擴(kuò)展的裝載內(nèi)存必須選用RAM類型。下圖為CPU 412的性能參數(shù)示例。
內(nèi)存類型 |
內(nèi) 容 |
注釋信息 |
裝載內(nèi)存 |
系統(tǒng)數(shù)據(jù)/System Data |
硬件組態(tài)數(shù)據(jù) |
程序塊/Program Blocks |
程序塊 (FBs,FCs,OBs,Symbols,Comments) |
|
工作內(nèi)存 (數(shù)據(jù)部分) |
數(shù)據(jù)塊/Data Blocks |
數(shù)據(jù)塊 (DBs) |
系統(tǒng)數(shù)據(jù)/System Data |
硬件組態(tài)信息,非裝載內(nèi)存中的全部硬件組態(tài)數(shù)據(jù) |
|
SFC動態(tài)創(chuàng)建的DB塊/DBs Created by SFC |
通過SFC21/22等動態(tài)創(chuàng)建的數(shù)據(jù)塊 |
|
本地?cái)?shù)據(jù)/Local Data |
各優(yōu)先級中斷所需的臨時數(shù)據(jù)存儲區(qū) |
|
工作內(nèi)存 (代碼部分) |
邏輯功能塊/Logic Blocks |
邏輯功能塊 (FBs,FCs) |
通信數(shù)據(jù)緩沖/Communication Data Buffer2) |
通信功能所需的臨時緩沖區(qū)(動態(tài)分配) |
|
通信作業(yè)數(shù)據(jù)/Communication jobs Data ( 72字節(jié)/每作業(yè)) |
通信功能塊占用的通信作業(yè)數(shù)據(jù)區(qū) |
|
輸入輸出映像區(qū)/PII/PIQ (12 字節(jié)/每映像區(qū)字節(jié)) |
輸入/輸出過程映像區(qū)所占用的數(shù)據(jù)空間 |
|
診斷緩沖區(qū)/Diagnostic Buffer ( 32字節(jié)/每記錄) |
CPU診斷消息 |
|
系統(tǒng)內(nèi)存 |
M區(qū)間、定時器T、計(jì)數(shù)器C 功能塊/中斷堆棧 |
M存儲區(qū)間、定時器/計(jì)數(shù)器存儲區(qū)間 堆棧區(qū)級通信/診斷/本地?cái)?shù)據(jù)緩沖區(qū) |
由于CPU的工作內(nèi)存大小不可擴(kuò)展,而各種CPU功能會共同占用這部分區(qū)域,對于內(nèi)存空間有限的CPU,例如S7-412H,內(nèi)存優(yōu)化顯得非常必要。
用戶可以根據(jù)項(xiàng)目的實(shí)際情況,調(diào)整CPU的內(nèi)存分配,適放更多的空間。例如,擴(kuò)展過程映像區(qū)、擴(kuò)展本地?cái)?shù)據(jù)區(qū)等。實(shí)際的CPU內(nèi)存占用情況可以通過以下方式檢查:
在Simatic Manager中右鍵點(diǎn)擊Blocks文件夾à Object Properties可以打開如下對話框,切換到Blocks頁即可查詢當(dāng)前用戶程序的內(nèi)存需求情況。
用戶程序內(nèi)存需求情況
控制器中的本地?cái)?shù)據(jù)區(qū)用于存儲各優(yōu)先級中斷運(yùn)行的程序所需的臨時數(shù)據(jù),這部分存儲空間是在控制器啟動初始化時完成預(yù)留分配。各功能塊所需的臨時數(shù)據(jù)存儲區(qū)大小可以通過功能塊屬性à General Part2中的Local data查詢到,如下圖所示。
按照實(shí)際程序所需的本地?cái)?shù)據(jù)進(jìn)行下圖所示的Local data的設(shè)置,可以優(yōu)化內(nèi)存的分配。
v 如何分配合理Local data
輸入/輸出映像區(qū)為控制器預(yù)留的、用于存儲I/O的映像數(shù)據(jù)的區(qū)間,控制器按照一定的機(jī)制進(jìn)行I/O數(shù)據(jù)的動態(tài)更新,可以優(yōu)化程序讀取I/O的速度和性能。PCS 7中要求必須基于映像區(qū)的方式進(jìn)行I/O信號的讀取,冗余控制系統(tǒng)中也要求基于映像區(qū)的方式進(jìn)行I/O信號的讀取。這部分存儲空間是在控制器啟動初始化時完成預(yù)留分配。
通過CPU的屬性對話框à Cycle/Clock Memory頁面進(jìn)行設(shè)置,如下圖所示。
此處為1000 Process image b/1000 Process image output,參考表格1中的數(shù)據(jù),每個映像區(qū)字節(jié)需要分配12 bytes的空間,總共所需1000*12 = 12000 bytes輸入/輸出。實(shí)際程序中所需的映像區(qū)范圍可以通過I/O卡件的地址范圍查詢到,查詢到實(shí)際程序所需的映像區(qū)范圍后,預(yù)留一定余量后對上圖進(jìn)行設(shè)置,可以優(yōu)化內(nèi)存的分配。
查詢I/O地址范圍
如上圖紅色標(biāo)識所示,輸入地址為0~515,則輸入映像區(qū)范圍最小設(shè)置為516字節(jié),輸出地址為0~515,則輸出映像區(qū)范圍最小設(shè)置為516字節(jié)。
診斷緩沖區(qū)用于存儲CPU在線的診斷信息,以便用于診斷維護(hù)等。CPU在線信息中的Diagnose buffer即為此處所說的診斷緩沖區(qū)。這部分存儲空間是在控制器啟動初始化時完成預(yù)留分配。
CPU在線診斷信息
通過CPU的屬性對話框à Diagnostics/Clock頁面進(jìn)行設(shè)置,如下圖所示。
CPU 診斷緩沖區(qū)設(shè)置
此處為120條,每條消息需要分配32 bytes的空間,總共所需120*32 = 3840 bytes。該消息存儲區(qū)間為Ring型存儲區(qū)間,如果消息條數(shù)充滿,例如,此處120條,則系統(tǒng)將用新的消息覆蓋最老的消息。根據(jù)實(shí)際項(xiàng)目情況進(jìn)行設(shè)置,設(shè)置范圍:最大3200條,最小100條。越大存儲的消息越多、時間越長。