s7 200 子程序 局部变量表

是不是这个局部变量表可以不用编写,比如,我在主程序里,用VD100存了一个数,到了子程序,可以直接拿来用吗?在主程序里用VD100存了一个地址,到了子程序里,可以直接*VD100吗? 还是非要把他们在局部变量表中,设为输入,再起个名字才能在子程序里用(和C语言似的,形参,实参)。局部变量表是不是为了,所谓的移植程序方便设置的? 呵呵,新手,先问明白,再编程序,怕搞坏东西。

最佳答案

1、在主程序里用VD100存了一个地址,到了子程序里,可以直接*VD100吗?
完全可以,这个VD100是全局变量。
2、局部变量表是不是为了,所谓的移植程序方便设置的?
不是为了移植程序方便。局部变量是分配给每个子程序的临时存贮区,是为了编程方便,例如作为中间单元使用。当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。
3、有关使用局部变量注意:
、由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。 尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。
、子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样的,中断程序也不能访问分配给主程序或子程序的局部存储器。

提问者对于答案的评价:
上次你发了两个网址。我没怎么看明白,这次你说的三个问题,我还是有些没看明白。刚才实际测了一下,完全可以。顺便发表一下对教科书看法,这两天为了弄这个子程序,到图书馆看了翻了不少s200的书,怎么说呢,作为后辈,不好妄加评论,但实在想吐槽,我敢说有些书的质量并不能完全称得上足够优秀。有些问题,自己容易复杂化。  谢谢你,谢谢。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc217489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月27日
下一篇 2017年11月27日

相关推荐