电动机功率 | 7kW | 外形尺寸 | 3mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 4kg |
全新的西门子S7-200SMART带来两种不同类型的CPU 模块,标准型和经济型,*满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展CPU 模块,可满足对I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型CPU 模块直接通过单机本体满足相对简单的控制需求。
![]() |
参考价 | ¥166 |
订货量 | 1 |
更新时间:2019-06-13 15:39:34浏览次数:269
联系我们时请说明是化工仪器网上看到的信息,谢谢!
河北西门子S7-200SMART代理商(欢迎您)
西门子S7-300/400PLC 功能块的组成
在功能块中,当访问参数时使用背景数据块中的实际参数的复制参数。当调用FB时,如果没有传送输入参数或没有写输出参数,则背景数据块中将始终使用以前的值。FC没有存储器,与FB对比,不可以选择对FC的形参赋值。当数据块的一个地址或调用块的局部变量作为实际参数时,则将一个复制的实际参数存储到调用块的局部数据区,用它来传送数据。
注意,在这种情况下,如果没有向FC的输出参数写入一个数据,则将输出一个随机值。由于作为复制数据所保留的调用块的局部数据区没有赋值到输出参数,所有该区没有写入任何数据。因此将输出存储在该区域的随机值,因为局部数据不能自动地设置为0。
功能块(FB)为用户程序块,代表具有存储器的逻辑块。可以由OB,FB和FC调用。功能块可以根据需要具有足够多的输入参数、输出参数和I/O参数,以及静态和临时变量。与FC不同的是,FB是背景化了的块,也就是说,FB可以由其私有数据区域的数据进行赋值,在其私有数据区域中,FB可以“记住”调用时的过程状态。简单的形式为:该数据区便是FB的自有DB,也就是所谓的背景DB。
功能块由两个主要部分组成:一部分是每个功能块的变量声明表,该表声明此块的局部数据;另一部分是逻辑指令组成的程序,程序要用到变量声明表中给出的局部数据。
当调用功能块时,需要提供块执行时要用到的数据或变量,也就是将外部数据传递给功能块,这称为参数传递。参数传递的方式使得功能块具有通用性,它可被其他的块调用,以完成多个类似的控制任务。
一个程序由许多部分(子程序)组成,STEP 7将这些部分称为逻辑块,并允许块间相互调用。调用过程如图4-4所示。
图4-4功能块的调用过程
堆栈是CPU中的一块特殊存储区,它采用“先入后出”的规则存入和取出数据。堆栈上面的存储单元称为栈顶,要保存的数据从栈顶压入堆栈时,栈中原有的数据依次向下移动一个位置,下面一个存储单元的数据丢失。同理,在取出栈顶的一个数据后,栈中所有的数据依次向上移动一个位置。堆栈的这种“先入后出”的存取规则刚好满足块的调用要求,因此在程序设计中得到了普遍的应用。
下面介绍STEP7中3种不同的堆栈。
1.局域数据堆栈(L)
局域数据堆栈用来存储块的局域数据区的临时变量、组织块的启动信息、块传递参数的信息和梯形图程序的中间结果,局域数据可以按位、字节、字和双字来存取,例如,LO.O、LB9、LW4和LD52。
各逻辑块均有自己的局域变量表,局域变量仅在它被创建的逻辑块中有效。对组织块编程时,可以声明临时变量( TEMP)。临时变量仅在块被执行的时候使用,块执行完后将被别的数据覆盖。
在*访问局域数据堆栈时,应对局域数据初始化。每个组织块需要局域数据来存储它的启动信息。
CPU分配给当前正在处理的块的临时变量(即局域数据)的存储器容量是有限的,这一存储区(即局域堆栈)的大小与CPU的型号有关。CPU给每一优先级分配了相同数量的局域数据区,这样可以保证不同优先级的组织块都有它们可以使用的局域数据空间。
图4-3中的FB1调用功能FC2,FC2的执行被组织块OB81中断,图中给出了局域数据堆栈中局域数据的存放情况。
在局域数据堆栈中,并非所有的优先级都需要相同数量的存储区。通过在STEP 7设置参数,可以给S7-400 CPU和CPU318的每一优先级不同大小的局域数据区,其余的S7-300 CPU每一优先级的局域数据区的大小是固定的。
2.块堆栈(B堆栈)
如果一个块的处理因为调用另外一个块而中止,或者被更高优先级的块中止,或者被错误的服务中止,CPU将在块堆栈中存储以下信息。
①被中断的块的类型(OB、FB、FC、SFB、SFC),编号,优先级和返回地址。
②从共享数据块和背景数据块寄存器中获得的块被中断时,打开的共享数据块和背景数据块的编号(即块存储器共享数据块、背景数据块被中断前的内容)。
③局域数据堆栈的指针(被中断块的L堆栈地址)。
利用这些数据,可以在中断它的任务处理完后恢复被中断的块的处理。在多重调用时,堆栈可以保存参与嵌套调用的几个块的信息。
CPU处于STOP模式时,可以在STEP 7中显示块堆栈中保存的在进入STOP模式时没有处理完的所有的块,在块堆栈中,块按照它们被处理的顺序排列,如图4-3所示。
STEP7中可使用的块堆栈大小是有限的,这与CPU的型号有关。
3.中断堆栈(I堆栈)
如果程序的执行被优先级更高的组织块中断,操作系统将保存下述寄存器的内容:当前累加器和地址寄存器的内容、数据块寄存器共享数据块和背景数据块的内容、局域数据的指针、状态字、MCR(主控继电器)寄存器和B块堆栈的指针。
新的组织块执行完后,操作系统从中断堆栈中读取信息,从被中断块的被中断的地方开始继续执行程序。
CPU在STOP模式时,可以在STEP 7中显示中断堆栈中保存的数据,用户可以由此找出使CPU进入STOP模式的原因。
STEP7编程软件允许用户将编写的程序和程序所需的数据放置在块中,使用户程序结构化,易于程序的修改、查错和调试。块结构显著地增加了PLC程序的组织透明性、可理解性和易维护性。各种块的简要介绍如表4-1所示。
表4-1 用户程序中的块
1.组织块(OB)
OB1是主程序循环块,用于循环处理,操作系统在每一次循环中调用一次组织块OB1。一个循环周期分为输入、程序的执行、输出和其他任务。例如下载、删除块、接收和发送全局数据等。根据过程控制的复杂程度,可将所有程序放入OB1中进行线性编程,或者将程序用不同的逻辑块加以结构化,通过OB1调用这些逻辑块,并允许块间的相互调用。这样可以把一个复杂的自动化任务分解为能够反映过程的工艺、功能或可以反复使用的小任务,使控制变得更加容易。S7-300 PLC的程序调用结构如图4-1所示。
从图4-1中可以看出,操作系统自动循环扫描OB1,OB1安排其他程序块的调用条件和调用顺序。FC和FB可以相互调用。FB后面的阴影图案表示伴随FB的背景数据块。
块的调用指令中止当前块的运行调用,然后执行被调用块的所有指令,当前正在执行的块在当前语句执行完后被停止执行(被中断),操作系统将会调用一个分配给该事件的组织块。该组织块执行完后,被中断的块将从断点处继续执行。
生成逻辑块(OB、FC、FB)时可以声明临时局域数据。这些数据是临时的,退出逻辑块时不保留临时局域数据。CPU按优先级划分局域数据区,同一优先级的块共用一片局域数据区。可以用STEP 7改变S7-400每个优先级的局域数据的数量。
2.功能(FC)与功能块(FB)
功能(FC)是用户编写的没有固定存储区的块,其临时变量存储在局域数据堆栈中,功能执行结束后,这些数据就丢失了。利用共享数据区可以存储那些在功能执行结束后需要保存的数据,由于FC没有自己的数据存储区,所以不能为功能的局域数据分配初始值。
调用功能和功能块时用实参(实际参数)代替形参(形式参数)。形参是实参在逻辑块中的名称,功能不需要背景数据块。功能和功能块用输入(IN)参数、输出(OUT)参数和I/O (IN/OUT)参数做指针,指向调用它的逻辑块提供的实参。另外,功能可以为调用它的块提供数据类型为RETURN的返回值。
功能块(FB)是用户编写的具有自己存储区域(背景数据块)的块,每次调用功能块时需要提供各种类型的数据给功能块,功能块也要返回变量给调用它的块。这些数据以静态变量(STAT)的形式存放在的背景数据块(DI)中,临时变量(IEMP)存储在局域数据堆栈中。
调用功能块或系统功能块时,必须背景数据块的编号,调用时背景数据块被自动打开。在编译功能块系统或功能块时,系统会自动生成背景数据块中的数据。用户可以在用户程序中或通过HMI(人机接口)来访问这些背景数据。
可以在功能块的变量声明表中给形参赋初值,它们被自动写入相应的背景数据块中。在调用块时,CPU将实参分配给形参的值存储在背景数据块中。如果调用块时没有提供实参,将使用上一次存储在背景数据块中的参数。
3.数据块
数据块(DB)是用于存放执行用户程序时所需的变量数据的数据区。与逻辑块不同,在数据块中没有STEP 7的指令,STEP 7按数据生成的顺序自动地为数据块中的变量分配地址。数据块分为共享数据块和背景数据块,其大容量与CPU型号有关。
(1)共享数据块
共享数据块存储的是全局数据,所有的功能块、功能或组织块(统称为逻辑块)都可以从共享数据块中读取数据,或将数据写入共享数据块。CPU可以同时打开一个共享数据块和一个背景数据块。如果某个逻辑块被调用,可以使用它的临时局域数据区(L堆栈)。逻辑块执行结束后,其局域数据区中的数据丢失,但是共享数据块中的数据不会被删除。
(2)背景数据块
背景数据块中的数据是自动生成的,它们是功能块变量声明表中的数据(不包括临时变量TEMP)。背景数据块用于传递参数,功能块的实参和静态数据存储在背景数据块中,调用功能块时,应同时背景数据块的编号和符号,背景数据块只能被的功能块访问。
操作时应首先生成功能块,然后生成它的背景数据块。在生成背景数据块时指明它的类型为背景数据块(Instance),并指明功能块的编号。在调用功能块时使用不同的背景数据块,可以控制多个同类的对象。例如,一个用于电动机控制的功能块,可以通过对每个不同的电动机,使用不同的背景数据块来控制多台电动机,如图4-2所示。
图4-2用于不同对象的背景数据块
(3)系统功能块(SFB)和系统功能(SFC)
系统功能块和系统功能是S7系列CPU提供的标准的已经为用户编制好程序的块,用户可以直接调用它们,以便高效地编制自己的程序,但用户不能修改这些功能块。它们是操作系统固有的一部分,不占用用户的程序空间。其中系统功能块有存储功能,其变量保存在的背景数据块中。
(4)系统数据块(SDB)
系统数据块是由STEP 7产生的程序存储区,包含系统组态数据。例如,硬件模块参数和通信连接参数等用于CPU操作系统的数据。
(5)块的调用
在程序编制过程中,可以用CALL、CU(无条件调用)和CC(RLO=1时调用)指令调用没有参数的功能和功能块。这里需要注意用CALL指令调用功能块和系统功能块时,必须背景数据块,而且静态变量和临时变量不能出现在调用指令中。
河北西门子S7-200SMART代理商(欢迎您)