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