最近網(wǎng)上有個帖子討論S7-200的局部變量區(qū)(L區(qū))的使用問題。有人說“L區(qū)留值沒有官方作保”,“官方應(yīng)該明確指出L的用法”。
遇到問題我喜歡從手冊和軟件的幫助中找答案,在S7-200的手冊中找到下面括號中的一段話,講得非常清楚:
(CPU)“為11個實體中的每一個保留局部存儲器:當(dāng)從主程序開始時,為1個主程序、8個子程序嵌套級別;當(dāng)從中斷程序開始時,為1個中斷和1個子程序嵌套級別。局部存儲器有一個局部范圍,在該范圍內(nèi)它只能供其相關(guān)的程序?qū)嶓w使用,其他程序?qū)嶓w無法訪問?!?BR>例如在主程序中調(diào)用子程序1、子程序2,在子程序1中調(diào)用子程序11,在子程序2中調(diào)用子程序21,子程序1、2屬于同一嵌套級別,子程序11和子程序21屬于同一嵌套級別。
各嵌套級別(即上述11個實體)之間的L區(qū)是相互獨(dú)立;
同一嵌套級別的程序的L區(qū)是公用的,后調(diào)用的同一級子程序的局部數(shù)據(jù)會覆蓋上一次調(diào)用的子程序的局部數(shù)據(jù)。
遇到問題我喜歡從手冊和軟件的幫助中找答案,在S7-200的手冊中找到下面括號中的一段話,講得非常清楚:
(CPU)“為11個實體中的每一個保留局部存儲器:當(dāng)從主程序開始時,為1個主程序、8個子程序嵌套級別;當(dāng)從中斷程序開始時,為1個中斷和1個子程序嵌套級別。局部存儲器有一個局部范圍,在該范圍內(nèi)它只能供其相關(guān)的程序?qū)嶓w使用,其他程序?qū)嶓w無法訪問?!?BR>例如在主程序中調(diào)用子程序1、子程序2,在子程序1中調(diào)用子程序11,在子程序2中調(diào)用子程序21,子程序1、2屬于同一嵌套級別,子程序11和子程序21屬于同一嵌套級別。
各嵌套級別(即上述11個實體)之間的L區(qū)是相互獨(dú)立;
同一嵌套級別的程序的L區(qū)是公用的,后調(diào)用的同一級子程序的局部數(shù)據(jù)會覆蓋上一次調(diào)用的子程序的局部數(shù)據(jù)。