电动机功率 | 6kW | 外形尺寸 | 5mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 3kg |
全新的西门子S7-1500PLC 带来了标准型,紧凑型,分布式以及开放式不同类型的 CPU 模块。凭借快速的响应时间、集成的 CPU 显示面板以及相应的调试和诊断机制,SIMATIC S7-1500 的 CPU *地提升了生产效率,降低了生产成本。
![]() |
参考价 | ¥366 |
订货量 | 1 |
更新时间:2019-06-06 15:48:47浏览次数:261
联系我们时请说明是化工仪器网上看到的信息,谢谢!
江苏西门子S7-1500PLC模块代理(优势价格)
功能块与功能的调用
CPU提供块堆栈来存储处理被中断块的有关信息。当发生块调用或有来自更高优先级的中断时,就有相关的信息存储在块堆栈里,并影响部分内存和存储器。调用块时的情况如图4-8所示。
图4-8 调用指令对CPU内存的影响
1.调用功能块(FB)
当调用功能块FB时,将会发生下列事件。
①调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入局域数据堆栈。
②数据块DB寄存器内容与背景数据块寄存器内容交换。
③新的数据块地址装入背景数据块寄存器。
④被调用块的实参装入共享数据块和局域数据堆栈上部。
⑤当功能块FB结束时,先前块的现场信息从块堆栈弹出,临时变量弹出局域数据堆栈。
⑥共享数据块和背景数据块寄存器内容交换。
2.调用功能(FC)
当调用功能FC时将有下列事件发生。
①功能FC实参的指针被存储到调用块的局域数据堆栈中。
②调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入局域数据堆栈。
③功能FC存储临时变量的局域数据堆栈区被推到堆栈上部。
④当功能FC结束时,先前块的现场信息存储在块堆栈中,临时变量弹出局域数据堆栈。
因为功能FC不用背景数据块,不能分配给初始数值给功能FC的局域数据,所以必须给功能提供实参。
下面以发动机控制系统的用户程序为例,介绍生成和调用功能块和功能的方法。
1.项目的创建
点击图标,在弹出的新项目向导中点击【Next】,依次选择CPU的型号和MPI站地址、需要编程的组织块和使用的编程语言,后设置项目的名称为“发动机控制”。
2.用户程序结构
用户程序结构如图4-9所示,其中组织块081是主程序,用一个名为“发动机控制”的功能块FB1来分别控制汽油机和柴油机,控制参数在背景数据块DB1和DB2中。控制汽油机时调用FB1和名为“汽油机数据”的背景数据块DB1,控制柴油机时调用FB1和名为“柴油机数据”的背景数据块DB2。此外控制汽油机和柴油机时还用不同的实参分别调用名为“风扇控制”的功能FC1。
根据用户程序的结构设计好SIMATIC管理器中的块
图4-10 SIMATIC管理器
3.符号表与变量声明表
(1)符号表
为了使程序易于理解,可以给变量符号。在发动机控制SIMATIC管理器的“S7Program (1)”树状目录下,双击“Symbols”图标,如图4-11所示,打开一个空的符号表,然后在里面输入需要的符号、地址、数据类型以及注释,就完成了对符号表的创建。创建好的发动机控制项目的符号表如图4-12所示,符号表中定义的变量是全局变量,可供所有的逻辑块使用。
(2)变量声明表
梯形图编辑器的右上半部分是变量声明表,右下半部是程序指令部分,左边是指令列表。用户在变量声明表中声明本块中的变量,即局域变量,包括块的形参和参数的属性,局域变量只是在它所在的块中有效。声明后在局域数据堆栈中为临时变量保存有效的存储空间。
对于功能块,还要为配合使用背景数据块的静态变量(STAT)保留空间。
在图4-13中,变量声明表的左边给出了该表的总体结构,点击某一变量类型(例如“OUT”),在表的右边将显示出该类型局域变量的详细情况。
将图4-13中变量声明表与程序指令部分之间水平分隔条拉至程序编辑器窗口的顶部,不再显示变量声明表,但它仍然存在,将分隔条下拉将再次显示变量声明表。
(3)FB1中的局域变量
发动机控制中FB1的局域变量如表4-4所示。表中Bool变量(数字量)的初值(InitialValue) FALSE即二进制数0。预置转速是固定值,在变量声明表中作为静态参数(STAT)来存储,被称为“静态局域变量”。
4.程序库
程序库用来存放能够多次使用的程序部件,可以从已有的项目中将它们复制到程序库,也可以在程序库中直接生成程序部件。
①新建程序库。在管理器中用菜单命令“File”→“New”打开“New Project”对话框,
在“Libraries”选项卡可以生成新的程序库,如图4-14所示。
图4-14新建程序库
②设置新建程序库存放的存放目录。菜单命令“Option”→“Customize”打开“Customize”窗口,用“General”选项卡中的“Storage location for libraries”可以设置新库存放在计算机的目录,如图4-15所示。
③显示和关闭程序库。用程序编辑器中的菜单命令“View”→“Overviews”可以显示或者关闭图4-13右边的指令目录和程序库(Libraries
STEP 7标准软件包提供下列的标准程序库,其内容和说明如表4-5所示。
表4-5 STEP 7标准软件包的标准程序库
用户安装可选软件包后,还会增加其他的程序库,例如安装S7 Graph后会自动增加S7Graph库。
5.功能块与功能
(1)功能块FB1的程序
图4-12的下半部分是FB1的梯形图程序,SR指令块用来控制发动机的运行,输入变量Switch_on和Switch_off分别是启动命令和停车命令。Failure(故障)信号在*时为0,有故障时为1。功能块的输出信号Engine_On为1时发动机运行,为0时发动机停车。
FB1用比较指令来监视转速,检查实际转速是否大于等于预置转速。如果满足条件,输出信号#Preset_Speed_Reached(达到预置转速)被置为1。
(2)功能的生成与编辑
如果控制功能不需要保存数据,可以用功能FC来编程。与功能块FB相比较,FC不需要配套背景数据块。
在功能变量声明表中可以使用的参数类型有IN、OUT、IN_OUT、TEMP和RETURN,功能不能使用静态( STAT)局域数据。
在管理器中打开Block文件夹,用鼠标右键点击右边的窗口,在弹出的菜单中选择“InsertNew Obj ect”→“Function”(插入一个功能
功能1(FC)中使用的变量如表4-6所示。在变量声明表中不能用汉字做变量的名称。
表4-6 FC1的变量声明表
功能FC1用来控制发动机的风扇,要求在启动发动机的同时启动风扇,发动机停车后,风扇继续运行4s后断电。
在FC1中,使用了延时断开定时器(S_OFFDT)。在功能的变量声明表中定义了输入变量( Engine_On)和输出变量( Fan_On),调用FC1时将延时断开定时器作为功能的输入变量,数据类型为Timer,FC1用于不同的发动机时可以不同的定时器。其对应的梯形图程
图4-18中梯形图的语句表程序如下所示:
A#Engine_On //输入信号,发动运行标志
LS5T#4S
SF #Timer_ Function
A#Timer_ Function//1亭机延时时定时器功能
=#Fan_On //输出信号,风扇运行标志
6.功能块与功能的调用
组织块OB1是循环执行的主程序,生成项目时系统自动生成空的081。在管理器中双击OB1图标后进入编辑器窗口,可以用“View”菜单命令选择编程语言,
在发送机控制程序中,OB1用来实现自动/手动工作模式的切换,通过两次调用FB1和FC1实现对汽油机和柴油机的控制。控制汽油机的程序如图4-20所示,柴油机控制程序与之相类似。
通过置位/复位指令SR,用符号名分别为“自动”和“手动”的按钮来控制符号名为“自动模式”的输出量Q4.2。符号名为“自动”和“手动”的变量不是某一发动机的属性,这些变量是在共享符号表中定义的,因此适用于整个程序。
(1)功能块的调用
块调用分为条件调用和无条件调用。用梯形图调用块时,块的EN(Enable,使能)输入端有能流流入时执行块,反之则不执行。条件调用时EN端受到触点电路的控制,块被正确执行时ENO(Enable Output,使能输出端)为1,反之为0。
调用功能块之前,应为它生成一个背景数据块,调用时应背景数据块的名称。生成背景数据块时应选择数据块的类型为背景数据块,并设置调用其功能块的名称。图4-19中的“汽油机数据”(DBl)是功能块“发动机控制”(FBl)的背景数据块。
调用功能块时应将实参赋值给形参,例如将符号名为“启动汽油机”的实参赋值给形参“Switch_On”,实参可以是地址或符号地址。如果调用时没有给形参赋以实参,功能块就调用背景数据块中形参的数值。该数值可能是在功能块变量声明表中设置形参的初值,也可能是上一次调用时储存在背景数据块中的数值。
(2)功能的调用
功能FC没有背景数据块,不能给功能的局域变量分配初值,所以必须给功能分配实参。STEP 7为功能提供了一个特殊的输出参数——返回值(RET_VAL) 。调用该功能时,可以一个地址作为实参来存储返回值。
图4-19所示的“汽油机风扇控制”部分是就是调用了功能FC1,功能FC1用于发动机停机后风扇继续运行4s后再停止运行。在符号表中定义了FC1输入变量和输出变量的符号。
图4-19中梯形图对应的语句表如下所示:
Networkl:自动手动切换
A ”自动”
S ”自动模式”
A ”手动”
R ”自动模式”
Network2:汽油机控制
CALL ”发动机控制”,”汽油机数据”
Switch_On :=”启动汽油机”
Switch_Off :=”关闭汽油机”
Failure :=”汽油机故障”
Actual_Speed :=”汽油机转速”
Engine_On :=”汽油机运行”
Preset_Speed_Reached:=”汽油机到达设置转速”
Network3:汽油机风扇控制
CALL ”风扇控制”
Engine_On :=”汽油机运行”
Timer_Function :=”汽油机风扇延时”
Fan_On :=”汽油机风扇运行”
江苏西门子S7-1500PLC模块代理(优势价格)