step7中功能块的变量意义

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

这个in,out,in_out都是针对这个程序块来说的,in变量是外部输入的,只能被本程序块读,不能被本程序块写,out是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写。in_out本程序块和其他程序都可以读写这个引脚的值。如果你把本程序块作为一个stat变量来调用就另说了!回答者:zhangli0-顶级工程师第12级2011-3-121:38在回答你的问题之前,有必要对变量声明表有一个基本了解。在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中使用,当块执行时它们被用来临时存储数据,一旦块执行介绍,堆栈重新分配,临时变量中的数据将丢失。在程序块中,如果在块的变量声明表中有局部变量符号,编程是STEP7软化自动在局部变量名前加一个“#”号,如果要访问与局部变量重名的全局变量(在符号表中定义),则全局变量必须使用双引号(如“Symbol”)IN(输入变量):逻辑快(FC或FB)中需要的输入信号,必须由调用该逻辑快的其他逻辑快(一般为组织快OB)提供具体的信号来源(即实参);OUT(输出信号):逻辑快(FC或FB)执行完成的结果输出,它可以返回给调用该逻辑快的其他逻辑快,结果输出的具体位置即实际参数由调用该逻辑快的其他逻辑快提供;输入/输出参数IN_OUT:兼有输入变量与输出变量的特性,变量的初值由调用该逻辑快的其他逻辑快提供,但是在执行过程中,其状态将被逻辑快所修改,修改后的结果任然返回给调用该逻辑快的其他逻辑快;临时变量TEMP:仅在程序执行过程中所需要的中间状态暂存单元(L堆栈),在程序执行完毕不需要保存;静态变量STAT:仅用于FB快,它在逻辑快执行完到下一次调用它时,静态变量的状态保持不变。我设计了一个修改报警上下限值的界面,比如设定电流上限值后面加了输入输出域,使设定值能自动修改报警记录中已设定的上限值。这样可以实现吗?请高手指点下!另外,我在页面中有个按钮,按下关闭当前窗口,我试了用VB代码执行动态,但是不会关闭窗口,请问怎样实现?谢谢!回答:問題1:將報警中上下限的變量鏈接到輸入輸出域問題2:將窗體的顯示屬性置False,在Wincc中沒有關閉窗體的概念,只是將窗體不顯示而已,這樣就會對PC的要求提升,但是也加快了窗體的顯示速度。對于2樓的回復,其代碼的作用是退出項目運行,而非關閉窗體。以上~~~查看更多答案

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功