西門子S7-300PLC模塊6ES7 321-1BH02-0AA0
西門子S7-300PLC模塊6ES7 321-1BH02-0AA0
(局部存儲(chǔ)區(qū))
在局部存儲(chǔ)器棧中,CPU 為每個(gè) POU (program organizational
unit,程序組織單元)提供 64 個(gè)字節(jié)的 L 存儲(chǔ)器。POU 相關(guān)的 L
存儲(chǔ)器地址僅可由當(dāng)前執(zhí)行的
POU(主程序、子例程或中斷例程)進(jìn)行訪問。當(dāng)使用中斷例程和子例程時(shí),L
存儲(chǔ)器棧用于保留暫停執(zhí)行的 POU 的 L 存儲(chǔ)器值,這樣另一個(gè) POU
就可以執(zhí)行。之后,暫停的 POU 可通過在為其它 POU 提供執(zhí)行控制之前就存在的 L
存儲(chǔ)器的值恢復(fù)執(zhí)行。
L 存儲(chǔ)器棧大嵌套層數(shù)限制:
● 當(dāng)從主程序開始時(shí)為八個(gè)子例程嵌套層
● 當(dāng)從中斷例程開始時(shí)為四個(gè)子例程嵌套層
嵌套限制允許在程序中有 14 層的執(zhí)行棧。例如,主程序(第 1
層)有八個(gè)嵌套子例程(第 2 層到第 9 層)。在執(zhí)行第 9
層的子例程時(shí),會(huì)發(fā)生中斷(第 10 層)。中斷例程包括四個(gè)嵌套的子例程(第 11
層到第 14 層)。
L 存儲(chǔ)器規(guī)則:
● 可將 L 存儲(chǔ)器用于所有類型
POU(主程序、子例程和中斷例程)中的局部臨時(shí)“TEMP”變量。
● 只有子例程可將 L
存儲(chǔ)器用于傳遞到子例程或從子例程中傳出的“IN”、“IN_OUT”和“OUT”類型的變量。
● 無論是以 LAD 還是以 FBD 編寫子例程,TEMP、IN、IN_OUT 和 OUT 變量只能占
60 個(gè)字節(jié)。STEP 7-Micro/WIN SMART 會(huì)使用局部存儲(chǔ)器的后四個(gè)字節(jié)。
局部存儲(chǔ)器符號(hào)、變量類型和數(shù)據(jù)類型會(huì)在“變量”表中進(jìn)行分配,當(dāng)在程序編輯器中打開
相關(guān)的 POU 時(shí)此表可用。當(dāng)成功編譯了 POU 時(shí)會(huì)自動(dòng)分配 L 存儲(chǔ)器的地址。
在大多數(shù)情況下,在程序邏輯中使用 L 存儲(chǔ)器符號(hào)名稱引用,因?yàn)樵诔晒幾g整個(gè) POU
之前,L 存儲(chǔ)器的所有地址均未知。然而,可以使用下表中列出的 L
存儲(chǔ)器的地址。