1.內存類型
S7-400型控制器的內存按照功能的不同,可以分為:
√ 係統內存(System Memory)--- 控制器的自身功能(M、T、C等)
√ 工作內存(work Memory)--- 用於運行程序;
√ 裝載內存(Load Memory)--- 用於裝載程序;
其中,工作內存部分又可以細分為:
√ 代碼工作內存(Code Memory)--- 用於運行程序的代碼部分;
√ 數據工作內存(Data Memory)--- 用於運行程序的數據部分;
S7-400型控制器的內存按照集成方式的不同,可以分為:
√ 集成內存(Integrated)--- 直接集成在控制器內部隨控制器一起提供,無需額外訂購;
√ 擴展內存(Expanded)--- 通過擴展存儲卡的方式擴展提供,需要額外訂購;
一般情況下,控制器的工作內存不可擴展,而裝載內存則可以通過FEPROM或RAM的方式進行擴展。如果希望和集成的RAM裝載內存無縫擴展使用,則擴展的裝載內存選用RAM類型。下圖為CPU 412的性能參數示例。
圖 1 CPU 412的性能參數示例
2.內存分配
控制器內存詳細分配情況如下表所示。#
內存類型 內容 注釋信息
裝載內存 係統數據/System Data 硬件組態數據
程序塊/Program Blocks 程序塊
(FBs,FCs,OBs,Symbols1),Comments1))
工作內存 數據塊/Data Blocks 數據塊 (DBs)
(數據部分) 係統數據/System Data 硬件組態信息,非裝載內存中的全部硬件組態數據
SFC動態創建的DB塊/DBs Created by SFC 通過SFC21/22等動態創建的數據塊
本地數據/Local Data 各優先級中斷所需的臨時數據存儲區
工作內存 邏輯功能塊/Logic Blocks 邏輯功能塊 (FBs,FCs)
(代碼部分) 通信數據緩衝/Communication Data Buffer2)
通信功能所需的臨時緩衝區(動態分配) 通信作業數據/Communication jobs Data ( 72字節/每作業) 通信功能塊佔用的通信作業數據區 輸入輸出映像區/PII/PIQ (12 字節/每映像區字節) 輸入/輸出過程映像區所佔用的數據空間 診斷緩衝區/Diagnostic Buffer ( 32 字節/每記錄) CPU診斷消息 係統內存 M區間、定時器T、計數器C M存儲區間、定時器/計數器存儲區間 功能塊/中斷堆棧 堆棧區級通信/診斷/本地數據緩衝區
表格 1 控制器內存分配祥表
1).通過 PLC?Save to Memory Card (EPROM)菜單才會下載到裝載內存中
2).運行時動態分配
實際應用過程中,當前控制器的內存佔有率及分配情況可以通過控制器在線信息? Memory頁面查詢到,如下圖所示。
圖 2 控制器內存在線分配情況
從該圖中可以看到內存被劃分為四個部分:Load Memory RAM(裝載內存RAM)、Load Memory EPROM(裝載內存EPROM)、Work Memory Code(工作內存Code)和Work Memory Data(工作內存Data)。每個部分的實際佔用狀況可以通過下側的Free(空閒內存)、Assigned(已分配內存)、Total(總內存)、Largest Free Block(大連續空閒內存空間)和Max. Pluggable(大可安插內存量)看到。而每個部分詳細的內部分配情況可以通過選擇相應內存列後,點擊右側的Details Memory Area按鈕查詢到,如下圖所示。
3.內存優化
根據上述介紹的內容可以查看到實際控制器內存的分配和使用情況,同時在項目組態階段,也可以參考表格1中的內容,按照如下方式計算、檢查各部分的內存需求情況,並對其進行相應優化。
3.1 用戶程序內存需求
在Simatic Manager中右鍵點擊Blocks文件夾? Object Properties可以打開如下對話框,切換到Blocks頁即可查詢當前用戶程序的內存需求情況。
圖 6 用戶程序內存需求情況
從上圖中可以看到,用戶程序所需裝載內存為5354 bytes,係統數據(硬件組態)所需裝載內存為7616 bytes,總和為12970 bytes,和CPU在線內存分配情況吻合(見上圖 3 裝載內存詳細分配情況中load objects所示)。用戶程序所需工作內存代碼部分為2682 bytes,所需工作內存數據部分為630 bytes,和CPU在線內存分配情況吻合(見上圖 4 工作內存 Code部分詳細分配情況中logic blocks部分所示和上圖 5 工作內存Data部分詳細分配情況中data blocks部分所示)。
3.2 工作內存數據部分? 本地數據內存需求
控制器中的本地數據區用於存儲各優先級中斷運行的程序所需的臨時數據,這部分存儲空間是在控制器啟動初始化時完成預留分配。各功能塊所需的臨時數據存儲區大小可以通過功能塊屬性? General Part2中的Local data查詢到,如下圖所示。
圖 7 功能塊所需本地數據大小
控制器中按照中斷的優先級的方式分配本地數據的大小,通過CPU的屬性對話框? Memory中設置,下圖所示本地數據離線設置為8192 bytes,與上圖 5 工作內存Data部分詳細分配情況中在線的Local data分配吻合。
離線程序中實際所需的本地數據可以參考如下連接文檔進行計算:
80027837
按照實際程序所需的本地數據進行下圖8所示的Local data的設置,可以優化內存的分配。
圖 8 CPU本地數據分配
3.3 工作內存代碼部分? 通信作業內存需求
通信作業用於實現控制器和外圍設備的通信功能,每個通信作業在內存中需要佔用的存儲空間,這部分存儲空間是在控制器啟動初始化時完成預留分配。離線的通信作業數可以參考上圖 8 CPU本地數據分配中的Communication resources進行設置。此處為300個,參考表格1中的數據,每個通信作業需要分配72 bytes的空間,總共所需300*72 = 21600 bytes,與上圖 4 工作內存 Code部分詳細分配情況中在線的Communication jobs內存分配吻合。
PCS 7係統中可以通過Chart reference data的統計數據查詢到離線程序所需的通信作業數,Step 7係統下則只有下載程序後通過上圖4查詢到。查詢到實際程序所需的通信作業數後,預留餘量後對圖8進行設置,可以優化內存的分配。
3.4 工作內存代碼部分? 輸入/輸出映像區內存需求
輸入/輸出映像區為控制器預留的、用於存儲I/O的映像數據的區間,控制器按照的機制進行I/O數據的動態更新,可以優化程序讀取I/O的速度和性能。PCS 7中要求基於映像區的方式進行I/O信號的讀取,冗餘控制係統中也要求基於映像區的方式進行I/O信號的讀取。這部分存儲空間是在控制器啟動初始化時完成預留分配。
通過CPU的屬性對話框? Cycle/Clock Memory頁面進行設置,如下圖所示。
圖 9 CPU過程映像區分配
此處為1000 Process image input/1000 Process image output,參考表格1中的數據,每個映像區字節需要分配12 bytes的空間,總共所需1000*12 = 12000 bytes輸入/輸出,與上圖 4 工作內存 Code部分詳細分配情況中Process-image inputs、Process-image outputs內存分配吻合。
實際程序中所需的映像區範圍可以通過I/O卡件的地址範圍查詢到,查詢到實際程序所需的映像區範圍後,預留餘量後對圖9進行設置,可以優化內存的分配。
圖 10 查詢I/O地址範圍
如上圖紅色標識所示,輸入地址為0~515,則輸入映像區範圍小設置為516字節,輸出地址為0~515,則輸出映像區範圍小設置為516字節。
注:地址範圍查詢時不用關心上圖10中Type列中帶*的輸入地址(卡件診斷地址)。此外圖9中的映像區範圍設置為偶數。
3.5 工作內存代碼部分? 診斷緩衝區內存需求
診斷緩衝區用於存儲CPU在線的診斷信息,以便用於診斷維護等。CPU在線信息中的Diagnose buffer即為此處所說的診斷緩衝區。這部分存儲空間是在控制器啟動初始化時完成預留分配。
圖 11 CPU在線診斷信息
通過CPU的屬性對話框? Diagnostics/Clock頁面進行設置,如下圖所示。
圖 12 CPU 診斷緩衝區設置
此處為120條,參考表格1中的數據,每條消息需要分配32 bytes的空間,總共所需120*32 = 3840 bytes,與上圖 4 工作內存 Code部分詳細分配情況中Diagnose buffer內存分配吻合。該消息存儲區間為Ring型存儲區間,如果消息條數充滿,例如,此處120條,則係統將用新的消息覆蓋老的消息。根據實際項目情況進行設置,設置範圍:大3200條,小100條。越大存儲的消息越多、時間越長。
4.總結
參考上述內容對CPU相應的參數進行設置,可以大大優化控制的內存分配。此處需要注意的是,上述大部分控制器參數設置均需要停機下載,因此建議在項目實施初期,控制器可以停機的情況下進行。
BENTLY NEVADA TRANSIENT DATA MGR 2100/00-01-10-01-00廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂。
Bently Nevada 3500 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂。
BENTLY NEVADA 3500/33廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 2201/03-03 NSFP 22010303廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/35-11-01-01-00-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA TDM KEYPHASOR PWA 77456-01廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/50-01-00-01-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada 3300/35 6 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72201-02-02-05-01-01-01廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada Tachometer Monitor 3300/50-01-01-00-00廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300-50-01-01-01-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/50-01-01-01-02 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA TK17 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300-16-02-01-01-01-02-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada 3300/36廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300-16-02-01-01-01-01-00廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 2201/02-02 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Vibration Meter : Bently Nevada TK81廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/35-02-02-01-00-00廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/35-02-02-02-00-00廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada 90199-22-02-03-02-02-01-03-04 Temp Board廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada 90199-21-02-03-02-02-02-01-02 Dual RTD廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 7200廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA TDM SAMPLER PWA 77448-01T廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 2201/02-02 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/55-01-04-02-02-00-00-05-00 USPP 3300廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada 90199-22-02-03-02-02-01-03-04 Temp Board廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/16-03-02-00-00-00-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/20-01-01-02-00-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA PWA-72928-02L 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/10-01-02-01 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/16-13-01-01-00-00-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72300-01-02-02-05-01-01 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72751-03-01-13-00-01 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada Dual Accelerometer Monitor New廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300 DUAL ACCELEROMETER MONITOR廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 18745-04 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72730-02-11-11-00-01 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72750-03-01-15-00-01-1 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72751-04-01-15-00-01-00001 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 3300/05-24-00-00 廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada TK-81廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
Bently Nevada Dual Vibration Monitor NIB廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72791-03-02-01-00-0101-1廈門興銳達,您不必為價格煩惱,不必為質量擔心,不必為售後擔憂
BENTLY NEVADA 72791-03-02-01-00-01-02-1 NSPP 7279103020
BENTLY NEVADA 72791-03-XX-13-00-03-02-100 NSPP 7279103X
BENTLY NEVADA 3300/12-01-20-00 USPP 330012012000
BENTLY NEVADA 18745-03 NSFP 1874503
Bently Nevada Thrust Monitor # 72300-02-04-01-01-01-01
BENTLY NEVADA 18745-04 NSPP 1874504
BENTLY NEVADA 3300/20-11-01-01-00-00 NSPP 3300201101010
BENTLY NEVADA 72601-22-01-01-01-01-03-00-13 NSPP 726012
BENTLY NEVADA 88984-03 NSPP 8898403
BENTLY NEVADA 72850-03-04-04-01-01-01-15 USPP 728500304
BENTLY NEVADA 72791-03-02-01-00-01-02-1 USPP 7279103020
BENTLY NEVADA 3300/0368049-00 USPP 3300036804900
BENTLY NEVADA 72790-03-01-11-00-02-01-00060 USPP 727900
BENTLY NEVADA 72850-03-04-04-01-01-01-01-15 USPP 728500
BENTLY NEVADA 3300/15-03-01-01-00-00-00 USPP 3300150301
BENTLY NEVADA 3300/20-02-01-01-00-00 USPP 3300200201010
BENTLY NEVADA 3300/20-02-01-02-00-00 USPP 3300200201020
BENTLY NEVADA 3300/20-11-01-01-00-00 USPP 3300201101010
BENTLY NEVADA 3300/15-02-01-00-01-00-00 USPP 3300150201
BENTLY NEVADA 3300/16-02-01-00-01-01-01 USPP 3300160201
BENTLY NEVADA 3300/55-06-01 DUAL VELOCITY MONITOR