首页 理论教育 用户程序中的块及其优化方式

用户程序中的块及其优化方式

时间:2023-06-29 理论教育 版权反馈
【摘要】:STEP7编程软件允许用户将编写的程序和程序所需的数据放置在块中,使用户程序结构化,易于程序修改、查错和调试。表6-1 用户程序中的块1.组织块组织块是操作系统与用户程序之间的接口,它们由操作系统调用,用于控制循环和中断程序的执行以及PLC的起动和错误处理等。当OB起动时,提供触发它的初始化起动事件的详细信息,这些信息可以在用户程序中使用。它们是操作系统固有的一部分,不占用户程序空间。

用户程序中的块及其优化方式

STEP7编程软件允许用户将编写的程序和程序所需的数据放置在块中,使用户程序结构化,易于程序修改、查错和调试。块结构显著地增加了PLC程序的组织透明性、可理解性和易维护性。各种块的简要介绍见表6-1。

表6-1 用户程序中的块

978-7-111-46052-7-Chapter06-1.jpg

1.组织块(OB)

组织块是操作系统与用户程序之间的接口,它们由操作系统调用,用于控制循环和中断程序的执行以及PLC的起动和错误处理等。组织块根据操作系统调用的条件(如时间中断、报警中断等),可以分成不同的类型,每种类型有不同的优先级,高优先级的OB可以中断低优先级的OB。当OB起动时,提供触发它的初始化起动事件的详细信息,这些信息可以在用户程序中使用。

OB1是主程序循环块,用于循环处理,操作系统在每一次循环中调用一次组织块OB1。一个循环周期分为输入、程序的执行、输出和其他任务,例如下载、删除块、接收和发送全局数据等。根据过程控制的复杂程度,可将所有程序放入OB1中进行线性编程,或将程序用不同的逻辑块加以结构化,通过OB1调用这些逻辑块,并允许块间的相互调用。这样可以把一个复杂的自动化任务分解为能够反映过程的工艺、功能或可以反复使用的小任务,使控制变得更加容易。

块的调用指令中止当前块的运行调用,然后执行被调用块的所有指令,当前正在执行的块在当前语句执行完后被停止执行(被中断),操作系统将会调用一个分配给该事件的组织块。该组织块执行完后,被中断的块将从断点处继续执行。

2.局域数据

生成逻辑块(OB、FC、FB)时可以声明临时局域数据。这些数据是临时的,退出逻辑块时不保留临时局域数据。它们又是一些局域(Local,或称局部)数据,只能在生成它们的逻辑块内使用。CPU按优先级划分局域数据区,同一优先级的块共用一片局域数据区。可以用STEP7改变S7-400每个优先级的局域数据的数量。

3.功能(FC)与功能块(FB)

功能(FC)是用户编写的没有固定的存储区的块,其临时变量存储在局域数据堆栈中,功能执行结束后,这些数据就丢失了。利用共享数据区可以存储那些在FC执行结束后需要保存的数据,由于FC没有自己的数据存储区,所以不能为FC的局域数据分配初始值。

调用FC和FB时用实参(实际参数)代替形参(形式参数)。形参是实参在逻辑块中的名称,FC不需要背景数据块。FC和FB用输入(IN)、输出(OUT)和输入/输出(IN/OUT)参数做指针,指向调用它的逻辑块提供的实参。另外,FC可以为调用它的块提供数据类型为RE-TURN的返回值

功能块(FB)是用户编写的具有自己存储区域(背景数据块)的块,每次调用FB时需要提供各种类型的数据给FB,FB也要返回变量给调用它的块。这些数据以静态变量(STAT)的形式存放在指定的背景数据块(DI)中,临时变量TEMP存储在局域数据堆栈中。

调用FB或SFB时,必须指定DI的编号,调用时DI被自动打开。在编译FB或SFB时,系统会自动生成背景数据块中的数据。用户可以在用户程序中或通过HMI(人机接口)来访问这些背景数据。

可以在FB的变量声明表中给形参赋初值,它们被自动写入相应的背景数据块中。在调用块时,CPU将实参分配给形参的值存储在DI中。如果调用块时没有提供实参,将使用上一次存储在DI中的参数。

4.数据块(DB)(www.xing528.com)

数据块(DB)是用于存放执行用户程序时所需的变量数据的数据区。与逻辑块不同,在DB中没有STEP7的指令,STEP7按数据生成的顺序自动地为DB中的变量分配地址。DB分为共享数据块和背景数据块,其最大容量与CPU型号有关。

(1)共享数据块

共享数据块存储的是全局数据,所有的FB、FC或OB(统称为逻辑块)都可以从共享数据块中读取数据,或将数据写入共享数据块。CPU可以同时打开一个共享数据块和一个背景数据块。如果某个逻辑块被调用,它可以使用它的临时局域数据区(即L堆栈)。逻辑块执行结束后,其局域数据区中的数据丢失,但是共享数据块中的数据不会被删除。

(2)背景数据块

背景数据块中的数据是自动生成的,它们是功能块的变量声明表中的数据(不包括临时变量TEMP)。背景数据块用于传递参数,FB的实参和静态数据存储在背景数据块中。调用功能块时,应同时指定背景数据块的编号或符号,背景数据块只能被指定的功能块访问。

应首先生成功能块,然后生成它的背景数据块。在生成背景数据块时指明它的类型为背景数据块(Instance),并指明功能块的编号。在调用功能块时使用不同的背景数据块,可以控制多个同类的对象。例如一个用于电动机控制的FB,可以通过对每个不同的电动机使用不同的背景数据集,来控制多台电动机(见图6-1)。

(3)系统功能块(SFB)和系统功能(SFC)

系统功能块(SFB)和系统功能(SFC)是S7 CPU提供的标准的已经为用户编制好程序的块,用户可以直接调用它们,以便高效地编制自己的程序,但不能修改这些功能块。它们是操作系统固有的一部分,不占用户程序空间。其中系统功能块(SFB)有存储功能,其变量保存在指定给它的背景数据块中。

978-7-111-46052-7-Chapter06-2.jpg

图6-1 用于不同对象的背景数据块

(4)系统数据块(SDB)

系统数据块(SDB)是由STEP7产生的程序存储区,包含系统组态数据,例如硬件模块参数和通信连接参数等用于CPU操作系统的数据。

(5)块的调用

在程序编制过程中,可以用CALL、CU(无条件调用)和CC(RLO=1时调用)指令调用没有参数的FC和FB。这里需要注意用CALL指令调用FB和SFB时,必须指定背景数据块,而且静态变量和临时变量不能出现在调用指令中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈