恭喜,你发布的帖子
发布于 2019-09-19 18:38:59
16楼
不管SMART 200 S7-200中的 子程序还是S7-300 ,400 S7 -1200 ,1500中的 FC FB 。在子程序,FB,FC 中定义的变量都是局部变量,这些变量作用域只在该块中起作用,离开自身定义的子程序,FB,FC这些变量没有任何意义,其他程序也没办法调用,谈不上干扰。当然有的会说FB中静态变量,这里讲一下,调用FB是需要背景数据块的,FB执行时是调用背景数据块的数据初始化对应的定义的局部变量(不严谨)又把FB运行的结果保存到对应的背景数据块中。其他程序都没办法调用这些局部变量干扰就无从谈起。
@sangshunyang
不是说子程序调用了其他子程序的局部变量造成干扰。局部变量干扰,或者说是存储器的干扰,局部变量也是要要有存储单元,且同一调用级别的子程序共用同一个局部变量存储区的,如果子程序调用没有遵循先赋值后使用的准则,造成了不是编程意图的结果,算是干扰吧。
针对异步指令(指多个扫描周期才能有结果的子程序)局部变量是要全局保存的(类似FB指令里面的静态变量),这样的变量算什么呢。
请填写推广理由:
分享
只看
楼主