維修西門子S7400電源模塊解密西門子S7400電源模塊代理西門子S7400電源模塊原裝西門子S7400電源模塊銷售維修西門子S7400電源模塊
您需要的產品找不到了是嗎?別急!上海西萬*
您心情激動不已了是嗎?別急!請詢價【】
撥通了是嗎?別急!小鄭會給您zui貼心的服務
這里有您眼紅的折扣!尖叫的價格!人性化的服務··
在這里,我們承諾【對于每一個詢價我們都會用zui真摯的態度處理】
我們承諾【對于客戶每一個問題我們都會給您zui滿意的答復】
我們承諾【對于每一個訂單我們都會進行一站到底的跟蹤和服務】
《銷售態度》:質量保證、誠信服務、及時到位!
《銷售宗旨》:為客戶創造價值是我們永遠追求的目標!
《服務說明》:現貨配送至全國各地含稅(17%)含運費!
《產品質量》:原裝*,*!
《產品優勢》:專業銷售 薄利多銷 信譽好,口碑好,價格低,貨期短,大量現貨,服務周到!
如何計算S7400 CPU所需的Local Data大小
問題:如何計算當前程序所需的Local Data大小并合理設置S7 400 CPU屬性中的Memory選項卡中的Local Data,S7 400 CPU中的Local data設置不當會導致什么問題?
回答:Local data顧名思義為本地數據,在西門子控制器中有一部分內存空間被設置為L區間,它被用于控制器在運行程序時存儲臨時數據。由于編寫FB/FC程序的需要和OB中調用功能塊結構的不同,不同的OB由于調用不同的FB/FC,因此所需的Local data的大小各不相同(被調用的FB/FC將占用當前調用他的OB塊的Local Data資源)。在控制器硬件組態中的CPU屬性設置中,Memory選項卡用于設置Local data的分配。如果相應OB塊實際運行所需的Local data大于硬件組態中所設置的Local Data大小,那么相應的程序將無法運行,CPU將報告INTF錯誤,甚至更為嚴重的情況下CPU可能會停止運行。但如果盲目將Local Data的分配設置過大,將會浪費一部分寶貴的CPU內存空間。
S7 300CPU中的Local data不可修改,每個優先級固定設置為256 bytes,S7 400的Local data則可以人為修改。由此可以看出正確設置S7400 CPU的Local Data的大小非常重要。在控制器硬件組態中CPU屬性? Memory選項卡的Local Data區域用于設置基于優先級的Local Data(如下圖所示):
Pic1: Local Data的分配
在PCS7組態的項目中,在編譯CFC程序后,系統將會自動計算各OB塊所需的Local Data大小,可以通過交叉索引(Chart reference data ? Local data,如下圖所示)查詢到。
Pic2: Chart reference data ? Local data
而普通的由用戶采用Step7編程方式編寫的程序,程序功能塊及OB塊各自的調用結構由用戶自行控制,需要在編寫完整個程序之后自行計算。
在手動計算Local Data時,需要獲取如下信息:
1. 各OB塊、FB塊、FC塊各自獨立運行時所需的Local Data大小
可以通過如下方式查詢到:在Block文件夾中選擇相應功能塊,右鍵 屬性? General - Part2中即可查看到,如下圖所示:
Pic3: 功能塊所需的Local Data
注:嵌套調用時,上一級功能塊將不會計算其嵌套調用的FB/FC所需的Local data大??;在上圖中將不會累加嵌套功能塊所需的Local data大?。?/p>
2. 整個程序的調用結構(Call structure)
由于功能塊不會計算其嵌套調用的功能塊所需到Local data大小,因此為了zui后計算整個OB所需到Local Data,必須了解整個程序的調用結構。打開任何一個功能塊,點擊左側的Call Structure即可查詢到,如下圖所示;
Pic4: 程序調用結構
3. 當前程序下所使用的所有OB的優先級
由于CPU屬性設置中的Local Data分配基于優先級進行設置,因此需要查看所有當前程序使用的OB塊的中斷優先級,打開硬件組態中CPU屬性查看,如下圖所示;
Pic5: 查看OB的優先級
獲得所有上述信息后,即可計算當前程序所需的Local data大小。假設當前項目下使用的功能塊及OB塊上述相關信息如下表所示:
OB/FB/FC | Priority 優先級 | 所需Local Data(Bytes) |
FB1 | X | 100 |
FC1 | X | 400 |
OB1 | 1 | 26 |
OB35 | 12 | 26 |
OB121 | X | 20 |
OB122 | X | 20 |
OB的調用關系如上圖Pic4所示。根據調用結構計算,單獨運行各OB塊時所需的Local data如下:
OB1: OB1 + Max(Sum(FB1,FC1), FC1) =26+Max(Sum(100,400), 400)=526
OB35: OB35 + Sum(FB1,FC1) =26+Sum(100,400)=526
OB121: OB121=20
OB122: OB122=20
zui終CPU屬性中Local data的設置如下:
優先級 1 所需Local Data大小至少為526 + 20 + 20 = 566 bytes;
優先級12所需的Local Data大小至少為526 + 20 + 20 = 566 bytes;
注:為什么上述優先級1和12中需要加入 兩個20呢,因為程序運行的任何位置都有可能會執行OB121、OB122,所以需要加上OB121和OB122所需的本地數據。PCS7中(Pic2所示)進行各優先級所需Local data大小計算時已經自動加入了這部分的大小。
具體的計算法則可以歸納為一下幾點:
1. 從內往外,從低往高;
即:基于程序的調用結構,從zui低層、zui內層逐步往上、往外計算;
2. 同級取zui大,內外求和;
即:程序調用結構中,同層FB/FC中所需的Local data取各所需Local data中的zui大值;某一優先級所需的Local Data大小取所有相同優先級OB所需的Local Data的zui大值;上下調用層級各自所需Local Data需求和;
3. 結果疊加OB121(編程錯誤)、OB122(I/O讀取錯誤);
即:zui終計算出的某優先級所需的Local data大小需要疊加上OB121、OB122所需的Local data;
如果項目中CPU設置的Local Data小于程序所需Local Data大小時會有如下后果:
1. PCS7中,如果項目硬件組態設置的CPU的Local data大小小于程序所需的Local data大小的情況下,PCS7項目在編譯時將提示如下相應警告信息:
/******************************************************************************************
W: Local data requirements for the priority class 1:
The local data requirements (890 bytes, including OB121 and OB122) of organization block OB1 exceed the configured local data stack of the corresponding priority class on the connected offline CPU.
/******************************************************************************************
如果實際運行的CPU中的Local Data設置小于正在下載的程序所需的Local data大小將提示如下錯誤信息,下載程序將終止:
/******************************************************************************************
Download to CPU SIMATIC H Station(1)\CPU_417-4H_R0\S7 Program(1) on 1/12/2009 10:26:16 PM (entire program)
E: Local data requirements (890 byte, inclusive OB121 and OB122) for organization block OB1 is larger than the local data stack configured in the connected online CPU for the corresponding priority class 1.
/******************************************************************************************
2. Step7編寫的程序則不會校驗Local data分配的情況,如果實際運行的CPU中的Local Data設置小于正在下載的程序所需的Local data大小,則在下載程序后運行該優先級下的程序時,CPU將報告INTF錯誤,該優先級的程序將無法執行,并將觸發OB88(Process interrupt OB)錯誤中斷。在CPU的診斷緩沖區中將生成類似如下的診斷信息:
/******************************************************************************************
Event 1 of 160: Event ID 16# 3576
Error when allocating local data
Caused by OB: Cyclic interrupt OB (OB 35), Priority class: 12
OB number: 35
Module address: 72
Requested OB: Processing abort OB (OB88)
Priority class: 28
Internal error, Incoming event
04:04:28.026 PM 01/14/1994
/******************************************************************************************
如果程序中沒有插入OB88,則CPU將停止運行;
在冗余CPU的情況下,在主CPU運行,啟動從CPU時將調用優先級為28的OB72。如果在優先級為28的中斷中出現Local Data不足的情況,則主從CPU都將停止運行。CPU的診斷緩沖區將生成類似如下的診斷信息:
/******************************************************************************************
Event 2 of 374: Event ID 16# 4570
STOP due to processing error (OB not loaded or not possible, or no FRB)
Breakpoint in user program: CPU redundancy error OB (OB72)
Priority class: 28
OB number: 72
Module address: 6
Previous operating mode: RUN (redundant mode)
Requested operating mode: STOP (internal)
Event occurred in the standby CPU in rack 1
Internal error, Incoming event
04:08:33.523 PM 01/14/1994
/******************************************************************************************
注:任何優先級為28的OB中出現Local data不足的情況都將導致該OB無法執行,CPU診斷緩沖區中將報告該OB無法執行或未裝載的錯誤。如果未裝載該OB會導致CPU停止運行,則即便程序中已經加載了這些OB,但由于該OB出現Local Data不足而導致無法執行,CPU仍舊會停止運行。
西門子S7-400電源模塊
6ES7 407-0DA02-0AA0 西門子電源模塊(4A)
6ES7 407-0KA02-0AA0 西門子電源模塊(10A)
6ES7 407-0KR02-0AA0 西門子電源模塊(10A)冗余
6ES7 407-0RA02-0AA0 西門子電源模塊(20A)
6ES7 405-0DA02-0AA0 西門子電源模塊(4A)
6ES7 405-0KA02-0AA0 西門子電源模塊(10A)
6ES7 405-0RA01-0AA0 西門子電源模塊(20A)
6ES7 971-0BA00 西門子備用電池