找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
FB中的静态变量(STAT)定义在背景数据块中,当被调用块运行时,能读出或修改静态变量;被调用块运行结束后,静态变量保留在数据块中。对每个具体的CPU型号而言,用作数据块的存储器总量是有限制的,如CPU314,用作数据块的存储器最多为8KB,所以使用STAC静态变量对于具体的CPU是有限制的。
临时变量(TEMP)是一种在块执行时,用来暂时存储数据的变量,这些临时数据存储在PLC工作存储器中局部数据堆栈(L Stack)中。当块执行时它们被用来存储数据,一旦块执行结束,堆栈重新分配,这些数据将丢失。由于TEMP是块执行时保存在工作存储器的数据堆栈中,因此根据不同CPU型号,本地数据字节可以为0 – 65535LB,它要比FB的背景数据块存储器大很多。
每种PLC CPU的数据范围可以在CPU技术规格中查到,如CPU315-2DP,工作存储器为128KB,装载存储器为128KB – 8MB MMC卡。
temp只在本扫描周期内有作用,下一个周期就会被自动复位。所以如果你的数据需要需要在下一个扫描周期内使用的,那么就不能使用temp变量。
stat静态变量:它可以保存数据,数据的保存地址就是这个fb的背景数据块内。
TEMP不可以改为STAT。
更多TEMP与STAT的区别,参见——
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=4&a_id=392943&s_id=0&num=11#anch
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=4&a_id=764877&s_id=0&num=8#anch
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=4&a_id=531772&s_id=0&num=10#anch
一,每个逻辑块的前部有一个变量声明表即称为局部变量声明表,它是对当前逻辑块控制程序所使用的局部数据进行声明。局部变量分为参数(输入参数IN、输出参数OUT、I/O参数)局部变量(包括临时变量temp和静态变量stat)。其中组织块OB只有临时变量,而功能FC没有静态变量stat。
1,temp是临时变量,cpu调用时分配内存,调用结束后释放内存,stat属于静态变量,分配内存不释放,所以临时变量不占用db块地址
2,temp是临时变量,stat是静态变量。temp在FB和FC中都可以用,但是FC和FB调用完之后,TEMP变量也随之消失;而stat变量只有FB中才可以用,它有存储功能。
3,temp只在本扫描周期内有作用,下一个周期就会被自动复位。所以如果你的数据需要需要在下一个扫描周期内使用的,那么就不能使用temp变量。
stat静态变量:它可以保存数据,数据的保存地址就是这个fb的背景数据块内。
二,TEMP与STAT的区别,详见:
http://www.ad.siemens.com.cn/club/bbs/post.aspb_id=4&a_id=392943&s_id=0&num=11#anch
http://www.ad.siemens.com.cn/club/bbs/post.aspb_id=4&a_id=531772&s_id=0&num=10#anch
http://www.ad.siemens.com.cn/club/bbs/post.aspb_id=4&a_id=764877&s_id=0&num=8#anch
TEMP和STAT的区别 :
http://wenku.baidu.com/view/c756653987c24028915fc3d2.html
在FB块中:temp类型的临时变量与局部变量的区别?
http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=764877
回答者: lee nd2009 - 高级技术员 第7级
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!