一个s7-300的程序,里面的一个FB程序块,如图请看
我想问请问这个STAT,以及STAT41这种变量是局部变量吗?DB块是全局变量,搞不清一般局部变量L以及这种STAT41在哪里看?我想监控这个STAT41数值,DB块里找遍了也没找到,在哪里找这个变量呢,初学者。
图片说明:
最佳答案
FB可以带一个背景数据块DB,用于多次调用时可以赋不同的初始值;
STAT,以及STAT41这种变量是局部变量吗?
这个是局部变量,只用在需要调用该数据的地方;比如有两个电机,用到的数据及格式都一样,那我们在写程序的时候,就可以先定义这样一组公用的标准数据组(静态变量)。这些FB带的DB数据块,只需要用到特定的功能时在这些块中进行调用,而普通的DB数据块中的数据,可能用到所有程序块中。
监视的方法:想要监视哪次调用FB块的内容,就在那次调用FB的程序段上右键然后选择“被调用块”然后选择“监视”就OK了,这时看到的就是本次调用FB运行的情况了。
引用:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=117833&cid=1029
在STEP7中有两种用来定义符号地址的表格形式:符号表(共享符号)和变量声明表(局域符号),其本质都是为了建立绝对地址与符号地址之间的内在联系,但表格针对的对象不同。共享符号是整个程序所使用的共同符号(用于全局符号定义的表为符号表);而局域符号是某一特定逻辑快(OB、FB、FC等)所使用的临时性标记,只能在特定的逻辑块中进行临时性定义。用于临时性的、局域符号定义的表被称为变量声明表,又称局部变量声明表。
局部变量声明表分为参数(输入参数IN、输出参数OUT、输入/输出参数IN_OUT)和局部变量。局部变量又包括静态变量(STAT)和临时变量(TEMP)两种。参数可在调用块(逻辑块,块中的形参)和被调用块(功能FB有自己自动生成的背景数据块DI,而功能FC只能使用共享数据块,提供调用块的形参的实际参数值,与调用块形式参数一一对应,数据类型必需一致)。静态变量和临时变量是仅供逻辑块本身使用数据,不能用作不同程序块之间的数据接口。
静态变量(STAT)在PLC运行期间始终被存储。S7 将静态变量定义在背景数据块(针对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中.
提问者对于答案的评价:
多谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202569.html