s7 200 子程序 局部變量表
劉玉蓉
發(fā)布于2014-11-20 17:20
339
0
標(biāo)簽:
是不是這個局部變量表可以不用編寫,比如,我在主程序里,用VD100存了一個數(shù),到了子程序,可以直接拿來用嗎?在主程序里用VD100存了一個地址,到了子程序里,可以直接*VD100嗎? 還是非要把他們在局部變量表中,設(shè)為輸入,再起個名字才能在子程序里用(和C語言似的,形參,實參)。局部變量表是不是為了,所謂的移植程序方便設(shè)置的? 呵呵,新手,先問明白,再編程序,怕搞壞東西。
佳答案
1、在主程序里用VD100存了一個地址,到了子程序里,可以直接*VD100嗎?
完全可以,這個VD100是全局變量。
2、局部變量表是不是為了,所謂的移植程序方便設(shè)置的?
不是為了移植程序方便。局部變量是分配給每個子程序的臨時存貯區(qū),是為了編程方便,例如作為中間單元使用。當(dāng)子程序被調(diào)用時,系統(tǒng)分配局部變量區(qū)給子程序;子程序執(zhí)行完成后,該局部變量區(qū)被釋放。釋放時其中存貯的值也同時丟失,不能再下一掃描周期再被子程序使用。
3、有關(guān)使用局部變量注意:
、由于局部變量區(qū)在子程序被調(diào)用時才被分配,且分配時并不對數(shù)據(jù)區(qū)進行初始化,所以其初始值是不確定的。因此在程序中用到這些存貯區(qū)的值的指令前,必須有對該存貯區(qū)地址的賦值操作,否則可能會出現(xiàn)錯誤的執(zhí)行結(jié)果。 尤其在子程序中存在大量的跳轉(zhuǎn)指令時,很容易出現(xiàn)漏掉對局部變量賦值的情況,要格外注意。
、子程序或者中斷程序不能訪問分配給主程序的局部存儲器。子程序不能訪問分配給主程序、中斷程序或者其他子程序的局部存儲器。同樣的,中斷程序也不能訪問分配給主程序或子程序的局部存儲器。