作为一个新手,最近在研究200Smart的子程序的用法。结果出现了一些令我很困惑的问题,希望各位大神不吝赐教。
事件的起因是因为我在网络上看到一个关于同一个子程序重复调用的问题。具体的链接如下:
http://blog.sina.com.cn/s/blog_669692a60101fy1m.html
虽然这个问题,作者最后给出了解决的方法,但是难免让人心有余悸,如果一个子程序很大的时候,使用的局部变量很多的时候,出错的概率也会加大。
通过这个帖子的启发,我在200Smart中进行测试。有两个子程序分别为SBR_3和SBR_4,他们有相同的局部变量L0.0、L0.1、L0.2。然后分别在主程序中调用他们。
主程序中调用SBR_3和SBR_4,同时使I0.5保持导通,I0.7保持断开。奇怪的是Q0.5和Q0.6都导通了,也就是说SBR_3中的局部变量L0.2调用完成之后没有释放???????????
继续做测试,把M0.5和M0.6断开,过一段时间再次置位M0.6结果还是一样的。也就是说即使我不调用子程序了,局部变量也不会释放???????
主程序、SBR_3和SBR_4,的代码截图如下所示
主程序
SBR_3子程序
SBR_4子程序