您现在的位置是:首页 > 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)中,这一数据块专门分配给功能块,称为背景数据块。
图3-34 功能块FB中定义“形式参数”的变量登记表 下面举例说明功能块( FB)的建立和编写过程。 图3-35图解说明怎样在LAD/STL/FBD窗口中,建立一个功能块程序(FB1,符号名为Engine,参看图3-19的符号地址表),在这里选择与编程OB1相同的编程语言LAD。 在编写功能块之前,首先要建立变量登记表,图3-36图解说明了变量登记表的建立和相关的属性。 在图3-36上部显示的菜单项中,单击Help→Contents之后,在Programming Blocks和Creating 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状态,“发动机”将停止(故障#Fault是0激活信号,在正常时#Fault的状态为1,在发生故障时#Fault的状态才为0)。 (2)怎样用比较器来监视“发动机”的速度? 比较器将变量#ActuaLSpeed(实际速度)和变量#Setpoint_Speed(设定点速度)进行比较,而且将结果分配给变量#Setpoint_Speed_Reached(达到设定点速度),在前者大于、等于后者时,#Setpoint_Speed_Reached的状态变为1。由于变量#Actual_Speed(实际速度)和变量#Setpoint_Speed(设定点速度)在变量登记表中的数据类型都定义为INT(整型数),所以比较器指令要采用整形数比较器GE_I。 单击Help→Contents之后,在Programming Blocks和Creating Logic Block(编程方块和建立逻辑方块)和Editing the Variable Declaration和Editing LAD Instruction(编辑变量登记表和编辑梯形图指令)项下,能找到更多的信息。
图3-35 建立一个开放的功能块(FB)
图3-36 在功能块编程中建立变量登记表及相关属性
图3-37 编程用于发动机(Engine)启动/停止的功能块FB1
图3-38 在FB1功能块中插入一段速度监视网络段
点击排行
PLC编程的基本规则
