最近我发现了一个比较奇怪的现场,西门子200里各个子程序里的局部变量之间会有相互影响,我前一个子程序里给临时变量赋值,会影响下一个子程序里相同地址的临时变量,比如我在前一个子程序里给LD0赋值100,在下一个子程序里,我同样用到了LD0,但这个程序里LD0的赋值语句没有执行,但是LD的值为100,和前一个子程序里的赋值一样。我这样就不理解了,既然是局部变量,应该是不同的子程序里用到相同名称但之间是不会有影响的吧,可是为什么会出现这种情况呢?咨询西门子,他们说LD的保持功能是随机的。那什么时候它会保持,什么时候它不保持的呢?想请教下大家,是不是也有遇到这样的情况,是怎么解决的?
这里面是我的观点。
http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=1&b_id=3&a_id=643451&s_id=&num=21#anch