变量再学习

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

图片说明:

变量再学习    变量再学习    变量再学习    变量再学习    变量再学习    变量再学习    变量再学习   

最佳答案

1:首先明确几个概念,根据变量作用范围来分可以有局部变量和全局变量,在SIEMENS  PLC 中M区,IO区,PI/PQ区,DB区,T,C 等都属于全局变量;根据变量的生存周期又可以有临时变量(L区变量),在SIEMENS PLC 中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区 定义一个符号,符号编程是现代编程的主流

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

专家置评

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

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc228620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午3:20
下一篇 2018年12月1日 上午3:20

相关推荐