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