对于临时变量的“先赋值后使用”大家都不会陌生,可是你是否真正正确地理解了“先赋值后使用”呢,我们来看看以下的例子:



通过仿真运行:I10.0=1,Q10.0=1 ,此时Q10.1=0属于先赋值后使用,彼此不受影响 ;
I10.2=1,此时,Q10.1=Q10.6=Q10.7=1(q10.6和q10.7都受临时变量的影响,而且是受FC2内的临时变量影响,只因为FC2和FB1内的临时变量同名。)并且,尽管FB1调用时有DB块,也一样受临时变量影响,这是因为,FB1内使用的是临时变量,而非静态变量。
若将图1FC2中并联的#run换成#run1,则,I10.0=1,q10.0,q10.1,q10.6,q10.7都将=1,也就是,后面的结果都受到临时变量的影响。
以上弄明白了,我想“先赋值后使用”才算真正弄明白了。若有错误,敬请指正