西門子S7-300PLC模塊6ES7 321-1BH02-0AA0
西門子S7-300PLC模塊6ES7 321-1BH02-0AA0

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