当前位置: 主页 > PLC控制

变量再学习

结合以下图,指出哪些符号是局部变量,静态变量,临时变量,用实际应用来加深自己对变量理解,

图片说明:

变量再学习变量再学习 变量再学习变量再学习 变量再学习变量再学习 7c17130beb76e572b705dfe2d8e8CE08变量再学习 变量再学习变量再学习 变量再学习变量再学习 变量再学习变量再学习

最佳答案

1:首先明确几个概念,根据变量作用范围来分可以有局部变量和全局变量,在SIEMENSPLC中M区,io区,PI/PQ区,DB区,T,C等都属于全局变量;根据变量的生存周期又可以有临时变量(L区变量),在SIEMENSPLC中L区变量就是局部变量。L区变量在于程序块的(OB,fb,FC)TEMP下面定义。静态变量只可以在FB的STAT类型下进行定义,属于全局变量。

2:FC,FB,等程序块中的IN,IN_OUT,OUT等叫接口,也就是程序块定义的形参。和变量不是同一个概念。
3:根据你的截图进行分析
图1中的FC100,没有任何类型的接口
图2中FC11中IN定义了很多形参,在调用FC11时,可以给这些IN接口赋予实参变量,这些变量可以是全局变量也可以是调用者的局部变量(L区)
图3中,图4中OB1中定义了一个LENTH的结构体变量,属于局部变量,临时变量。根据第一点所说OB1调用SFC51时,所使用的实参M区都是变量全局变量。
图5中FC101调用FC11时,实参中的变量M区和IO区,同样属于全局变量
图6中FC101调用FB13中实参变量使用了IO区和M区,同样属于全局变量。FB13的背景数据块的DB155中的变量,全局属于全局变量,其中的STAT类型变量也叫静态变量。
图7中IN,IN_OUT,OUT都是形参接口和变量不是一个概念。其中STAT里面定义的变量,属于静态变量,存储在FB的背景DB块中,当然FB的IN,IN_OUT,OUT形参接口在背景FB里,也有相应的存储区域,属于全局变量,这点和FC不同,FC没有自己的存储区域,所以在调用FC时,IN等形参接口,必须赋实参(全局或者临时变量),而FB在被调用时,IN等新参可以不必赋实参,因为FB有自己的存储区域(背景DB块)。

最后,可以在符号表中,对M区,IO区,PI/PQ区定义一个符号,符号编程是现代编程的主流

提问者对于答案的评价:
讲的太详细了,高级讲师的水平

专家置评

其实,不光是知道哪些是什么变量,更要知道为什么是这样的变量,他们的区别是什么,其他的回答也值得参考。

  • 关注微信

猜你喜欢

微信公众号