西门子s7-300功能块的临时变量与静态变量
来源:电工天下时间:2015-10-25 18:10:11 作者:老电工手机版>>
西门子s7-300功能块的临时变量与静态变量的区别
1、TEMP (临时变量):暂时保存在局部数据堆栈中的变量。
同一级POU的临时变量使用局部数据堆栈中的同一块物理存储区,类似于公用的布告栏,谁都可以往上面贴布告,后贴的布告将原来的布告覆盖掉。
每次调用POU之后,不再保存它的临时变量的值。每次调用FC和FB时,首先应初始化它的临时变量(写入数值),然后再使用它,简称为先赋值后使用。
2、STAT(静态变量):保存在背景数据块中,背景数据块相当于每次调用功能块时对应的被控对象的私人数据仓库。
功能块执行完后,背景数据块中的数据不会丢失,以供下次执行功能块时使用。
因此,在功能块执行完后需要保存的变量应使用静态变量。
静态变量与临时变量的区别
问题:在FC块中,静态变量STAT和TEMP临时变量在应用时的区别有哪些?
变量声明表
在STEP7中有两种用来定义符号地址的表格形式:符号表(共享符号)和变量声明表(局域符号),其本质都是为了建立绝对地址与符号地址之间的内在联系,但表格针对的对象不同。共享符号是整个程序所使用的共同符号(用于全局符号定义的表为符号表);而局域符号是某一特定逻辑快(OB、FB、FC等)所使用的临时性标记,只能在特定的逻辑块中进行临时性定义。用于临时性的、局域符号定义的表被称为变量声明表,又称局部变量声明表。
局部变量声明表分为参数(输入参数IN、输出参数OUT、输入/输出参数IN_OUT)和局部变量。局部变量又包括静态变量(STAT)和临时变量(TEMP)两种。参数可在调用块(逻辑块,块中的形参)和被调用块(功能FB有自己自动生成的背景数据块DI,而功能FC只能使用共享数据块,提供调用块的形参的实际参数值,与调用块形式参数一一对应,数据类型必需一致)。静态变量和临时变量是仅供逻辑块本身使用数据,不能用作不同程序块之间的数据接口。
通过以上分析,所谓局部变量(包括静态变量和暂态变量)都是指对特定的逻辑块而言的,局部变量只是在它所在的块中有效,离开具体的逻辑块谈上述变量是没有意义的,你不能在其他块中调用利用变量(包括静态变量和暂态变量),这是与共享符号不一致的,共享符号可以被任意块调用。
在每个逻辑块的前上面部分就是变量声明表的区域,在变量声明表中,用户声明本块中专用的变量,即局部变量包括块的形参和参数的系统属性。你可以在不同的块中使用相同的局部变量符号不会产生冲突。
静态变量(STAT)在PLC运行期间始终被存储。S7 将静态变量定义在背景数据块(针对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中;
临时变量(TEMP)是一种在块执行时,用来暂时存储数据的变量,这些数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。临时变量可以在组织快OB、功能FC和功能块FB中使用,当块执行时它们被用来临时存储数据,一旦块执行介绍,堆栈重新分配,临时变量中的数据将丢失。
相关文章
西门子s7-300 plc绝对寻址与符号寻址的功能说明
西门子s7-300 plc绝对寻址和符号寻址,绝对地址包含地址标识符和内存位置,STEP 7可以自动地将符号名称翻译成所需要的绝对地址,西门子step7中的绝对寻址与符号寻址的实例教程。
时间:2020-11-17 13:19:15
西门子s7-300增加模拟量输入模块过程的步骤
西门子s7-300增加模拟量输入模块过程的步骤,分为九个步骤与一个注意问题,改造工程提前办理工作票,准备用要用的工具及材料,当配置下载成功后,进入软件程序设计划面调用FC105进行量程变换。
时间:2020-04-23 11:24:40
西门子s7-300定时器的剩余时间参与比较的方法
西门子s7-300定时器的剩余时间参与比较的方法,要求剩余时间值与5s比较,所以MW10中BI剩余时间值应与50(单位为100ms,即5s)比较,在脉冲定时器定时时断开输入端,剩余时间值保持不变。
时间:2020-04-23 10:19:13
西门子s7-300 plc定时器指令的类型与用法
西门子s7-300 plc定时器指令的类型与用法,西门子S7-300有五种类型的定时器,三种类型的计数器,有关延时通定时器指令、锁存型延时通定时器指令、延时断定时器指令、脉冲定时器指令、脉冲扩展定时器指令的用法。
时间:2020-04-23 10:12:27
西门子s7-300支持的传感器类型有哪些
西门子s7-300支持的传感器类型西门子plc s7-300的di模块很多,其具体参数需要在硬件组态中查看。1、s7-300的大部分di模块均为漏型(选取pnp型的传感器),在硬件组态时不提示源型或漏型。
时间:2020-04-23 09:36:17
西门子s7-300子程序执行时间的是多少
有关西门子s7-300执行子程序时间的查看方法,分享了西门子s7-300执行子程序时间的具体查看步骤,可在主程序调用该子程序的前后分别读取cpu的系统时钟,利用时钟指令fc34进行相减进行编程运算。
时间:2020-04-08 13:32:13
西门子s7-300下载程序报错原因分析
有关西门子s7-300下载程序的报错原因,西门子s7-300下载程序报错原因查找方法,地址间断连续,说明模拟量模块有问题,在硬件组态中点击“离线—在线”。
时间:2020-04-08 12:38:52
西门子s7-300 cpu系统扫描循环时间的查看办法
如何查看西门子s7-300中cpu系统扫描循环时间,有二种方法,方法1:将程序下载到plc中,在线连接并查看cpu信息,方法2:通过将OB1对应的临时变量传到M区中,读取CPU的扫描循环时间。
时间:2020-04-08 11:52:20