您现在的位置是:首页 > PLC技术 > PLC技术

用功能块和数据块建立一个程序

来源:艾特贸易2017-06-05

简介在自动化项目中经常会碰到这样的情况,许多控制对象有相同的控制要求,如果对每一个控制对象都编一套控制程序,这样总的程序会变得非常冗长,其中大量的是重复相同的控制指令

    在自动化项目中经常会碰到这样的情况,许多控制对象有相同的控制要求,如果对每一个控制对象都编一套控制程序,这样总的程序会变得非常冗长,其中大量的是重复相同的控制指令,这不仅浪费了编程人员的劳动,还占用和浪费了CPU的资源。为了简化这种情况下的程序编写,在STEP 7的结构化程序中提供一种功能块程序。功能块(FB)是用来对具有相同控制要求的控制对象编写的一个标准化程序,包含一组“形式参数”,由变量登记表定义,以及用各种指令对“形式参数”和数据写出的控制算法和控制逻辑。对具有相同控制要求的不同控制对象,只需要在组织块(例如OB1)的下面,重复调用同一FB很多次,每一次调用时用“实际参数”(对具体控制对象的输入/输出和数据)去替换“形式参数”就可以了。    变量登记表包含以下一些内容(见图3-34):    Name(符号名)、Data Type(数据类型)、Address(地址)、Initial Value(初始值)、Exclusion address(过程诊断用、选择项)、Termination address(过程诊断用,选择项)及Comment(说明)。    在编写功能块时,它的形式参数和静态数据保存在一个分开的数据块( DB)中,这一数据块专门分配给功能块,称为背景数据块。
功能块FB中定义“形式参数”的变量登记表
    3-34    功能块FB中定义“形式参数”的变量登记表    下面举例说明功能块( FB)的建立和编写过程。    3-35图解说明怎样在LAD/STL/FBD窗口中,建立一个功能块程序(FB1,符号名为Engine,参看图3-19的符号地址表),在这里选择与编程OB1相同的编程语言LAD    在编写功能块之前,首先要建立变量登记表,图3-36图解说明了变量登记表的建立和相关的属性。    在图3-36上部显示的菜单项中,单击HelpContents之后,在Programming BlocksCreating Block and Libraries(“编程方块”和“建立方块和库”)项下,能找到更多的信息。    3-37图解介绍怎样来编写一个功能块,例如要用两个不同的背景数据块,通过一个功能块,控制和监视“汽油引擎”和“柴油引擎”。所有的“引擎指标”信号,将作为参数块从组织块传送到功能块,为此必须将输入和输出参数在“变量登记表”( Variable decla-ration table)内进行登记。前面已经介绍了如何编写串联电路、并联电路和存储功能的程序,这些在编程功能块时都很有用。    3-38图解说了如何在FB1功能块中插入一段速度监视网络段。    下面对功能块FB1作一些说明。    (1)“发动机”(Engine)何时将“启动”或“停止”?    当变量#Switch_On具有1状态,且变量Automatic_Mode具有0状态时,“发动机”将启动。    如果“发动机”采用自动方式,Automatic_Mode=1,则这一功能是不允许的。    当变量#Switch_Off具有1状态或者当变量#Fault具有0状态,“发动机”将停止(故障#Fault0激活信号,在正常时#Fault的状态为1,在发生故障时#Fault的状态才为0)。    (2)怎样用比较器来监视“发动机”的速度?    比较器将变量#ActuaLSpeed(实际速度)和变量#Setpoint_Speed(设定点速度)进行比较,而且将结果分配给变量#Setpoint_Speed_Reached(达到设定点速度),在前者大于、等于后者时,#Setpoint_Speed_Reached的状态变为1。由于变量#Actual_Speed(实际速度)和变量#Setpoint_Speed(设定点速度)在变量登记表中的数据类型都定义为INT(整型数),所以比较器指令要采用整形数比较器GE_I    单击HelpContents之后,在Programming BlocksCreating Logic Block(编程方块和建立逻辑方块)和Editing the Variable DeclarationEditing LAD Instruction(编辑变量登记表和编辑梯形图指令)项下,能找到更多的信息。
建立一个开放的功能块(FB)
    3-35    建立一个开放的功能块(FB)
在功能块编程中建立变量登记表及相关属性    3-36    在功能块编程中建立变量登记表及相关属性
编程用于发动机(Engine)启动/停止的功能块FB1
    3-37    编程用于发动机(Engine)启动/停止的功能块FB1
在FB1功能块中插入一段速度监视网络段    3-38    FB1功能块中插入一段速度监视网络段