STEP 7中的块从其功能、结构及其应用角度来看,是用户程序的一部分。根据内容,可以将STEP 7块划分为用户块和系统块两类。
1)用户块
用户块包括组织块(OB)、功能块(FB)、功能(FC)以及数据块(DB)。编程人员将用于进行数据处理或过程控制的程序指令,存储在这些块(OB、FB和FC)中。程序员可以将程序执行期间产生的数据保存在数据块(DB)中,以备后来使用。用户块是在编程设备中创建的,并从编程设备中下载到CPU中去。
2)系统块
系统块包括系统功能块(SFB)、系统功能(SFC)以及系统数据块(SDB)。
SFB和SFC集成在CPU的操作系统,用以解决PLC需要频繁处理的标准任务。
SDB包含用作参数分配的数据,这些数据只能由CPU进行评估。SDB是由HWCONFIG或NETPRO这些工具创建编写的,用户程序不能创建编写。SDB是在将装载参数分配数据期间——该过程对用户可见——由上述工具创建并下载到CPU中的。下载操作只能在STOP(停机)模式下进行。
各种块之间的关系如图7-9所示。
图7-9 各种块的关系
STEP 7除了具有结构化编程的优点之外,还具有下面的优点。
可以在运行期间修改STEP 7中的用户块(OB、FB、FC及DB)并在运行期间将其下载到CPU中去。表7-1表示了STEP 7中块的类型及属性。
表7-1 STEP 7中块的类型及属性
(1)组织块(OB):组织块(OB)是操作系统和用户程序之间的接口,它们控制扫描循环和中断程序的执行、PLC的启动和错误处理等。通过编程组织块,用户可以指定CPU的动作。
●OB1用于循环处理,用户程序中的主程序。
●事件中断处理,需要时才被及时地处理。
●中断的优先级,高优先级的OB可以中断低优先级的OB。
组织块的优先级:组织块决定各个程序部分执行的顺序。一个OB的执行可以被另一个OB的调用而中断。哪个OB可以中断其他OB,由它的优先级决定。高优先级的OB可以中断低优先级的OB。背景OB的优先级最低。(www.xing528.com)
中断的类型和优先级:导致OB被调用的事件就是所知的中断。表7-2显示了STEP 7中的中断类型以及分配给它们的组织块的优先级。并非所有列出的组织块和它们的优先级适用于所有S7 CPU(见《S7-300可编程控制器、硬件和安装手册》以及《S7-400、M7-400可编程控制器模板技术规范参考手册》)。
表7-2 OB组织块一览表
续表
(2)临时局域数据:生成逻辑块(OB、FC、FB)时可以声明临时局域数据。这些数据是临时的,局域(local)数据只能在生成它们的逻辑块内使用。所有的逻辑块都可以使用共享数据块中的共享数据。
(3)功能(FC):没有固定的存储区的块,其临时变量存储在局域数据堆栈中,功能执行结束后,这些数据就丢失了。用共享数据区来存储那些在功能执行结束后需要保存的数据。
调用功能和功能块时用实参(实际参数)代替形参(形式参数)。形参是实参在逻辑块中的名称,功能不需要背景数据块。功能和功能块用IN、OUT和IN_OUT参数做指针,指向调用它的逻辑块提供的实参。功能可以为调用它的块提供数据类型为RETURN的返回值。
(4)功能块(FB)是用户编写的有自己的存储区(背景数据块)的块,每次调用功能块时需要提供各种类型的数据给功能块,功能块也要返回变量给调用它的块。这些数据以静态变量(STAT)的形式存放在指定的背景数据块(IDB)中,临时变量TEMP存储在局域数据堆栈中。
调用FB或SFB时,必须指定DI的编号。在编译FB或SFB时自动生成背景数据块中的数据。一个功能块可以有多个背景数据块,用于不同的被控对象。
可以在FB的变量声明表中给形参赋初值。如果调用块时没有提供实参,将使用上一次存储在IDB中的参数。
(5)数据块(DB)中没有STEP 7的指令,STEP 7按数据生成的顺序自动地为数据块中的变量分配地址。数据块分为共享数据块和背景数据块。
应首先生成功能块,然后生成它的背景数据块,如图7-10所示。在生成背景数据块时指明它的类型为背景数据块(IDB)和它的功能块的编号。
图7-10 用于不同对象的背景数据块
(6)系统功能块(SFB)和系统功能(SFC)是为用户提供的已经编好程序的块,可以调用不能修改。操作系统的一部分,不占用户程序空间。SFB有存储功能,其变量保存在指定给它的背景数据块中。
(7)系统数据块(SDB)包含系统组态数据,例如硬件模块参数和通信连接参数等。
CALL、CU(无条件调用)和CC(RLO=1时调用)指令调用没有参数的FC和FB。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。