发布于 2011-06-19 23:46:33
5楼
看到楼主疑惑,我想讲一个故事:以前我曾化了较多的时间,傻瓜般地去阅读过德国人编写的几个S5大型程序,发现老外把S5的FY200-FY255(相当于S7的MB200-MB255)这个区域人为地定义成一个“临时存储区”。在他们开发的S5-FB里面,外部数据总是先赋给这些地址,所有的逻辑运算、数学运算全部在这些“临时存储区”内完成,并把需要的运算结果输出保存到DB。同时也发现,块的可移植性也很好,感觉他们在内存使用的时候采用了相当高的技巧(有些单片机高手编程也使用这种内存技巧),对我来说也真是受益匪浅!后来学习了S7-300/400,发现S7有了真正意义上的临时存储区(L 临时变量),这也是S5升级到S7有较大变化之一。所以我个人理解:S7里的L区是一个临时存储区,任何OB、FC、FB多级嵌套、多次调用都可以使用L区,只要保持先赋值后存储的规则,程序的任何地方都可以重复使用。使用L区完美地解决块的可移植性问题,应该比FB带背景数据块来解决可移植性的方法更节省资源也更为明智!所以我个人认为:L 临时变量,是专门为块的可移植性而提供的资源。建议:没有完全理解L 临时变量的坛友们需谨慎使用!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”