浔之漫智控技术(上海)有限公司
西门子模块代理商
西门子伺服系统代理商(西门子代理商)

西门子伺服系统代理商

西门子伺服系统代理商

西门子伺服系统代理商

西门子代理商

浔之漫智控技术(上海)有限公司 

本公司销售西门子自动化产品,全新原装,质量保证,价格优势

西门子PLC,西门子触摸屏,西门子数控系统,西门子软启动,西门子以太网

西门子电机,西门子变频器,西门子直流调速器,西门子电线电缆

我公司大量现货供应,价格优势,品质保证,德国原装进口

西门子PLC在用户程序中使用的堆栈有哪几种

堆栈(见图4-4)是CPU中的一块特殊的存储区,它采用“先入后出”的规则存入和取出数据。堆栈*上面的存储单元称为栈顶,要保存的数据从栈顶“压入”堆栈时,堆栈中原有的数据依次向下移动一层,*下面的存储单元的数据丢失。在取出栈顶的数据后,堆栈中所有的数据依次向上移动一层。堆栈的这种“先人后出”的存取顺序,刚好满足块调用时(包括中断处理的块调用)存储和取出数据的要求,因此堆栈在计算机的程序设计中得到了广泛的应用。下面介绍STEP7中3种不同的堆栈。

  1.局部数据堆栈(L堆栈)

  各逻辑块都有它的局部变量(L)存储区,局部变量在逻辑块的变量声明表中生成,只在它被创建的块中有效。每个组织块用20B的临时局部数据来存储它的启动信息。局部数据可以按位、字节、字和双字来存取,例如L0.0、LB9、LW4和LD52。

  CPU分配给当前正在处理的块的临时局部数据的存储器容量是有限的,这一存储区(即局部堆栈)的大小与CPU的型号有关。CPU给每一优先级分配了局部数据区,这样可以保证不同优先级的OB都有它们可以使用的局部数据空间。

  通过在STEP7中设置参数,可以给S7-400CPU的每一优先级指定不同大小的局部数据区。S7-300 CPU每一优先级的局部数据区的大小是固定的。

  2. 块堆栈(B 堆栈)

  如果一个块的处理因为调用另外一个块,或者被更高优先级的OB块中止,CPU将在块堆栈中存储以下信息

  1)被中断的块的类型(OB、FB、FC、SFB、SFC)、编号和返回地址。

  2)从DB和DI寄存器中获得的块被中断时打开的共享数据块和背景数据块的编号。3)局部数据堆栈的指针。

  利用这些数据,可以在中断它的任务处理完后恢复被中断的块的处理。在多重调用时,堆栈可以保存参与嵌套调用的几个块的信息。图4-5中的OB1调用功能FC2,FC2的执行被电源故障组织块OB81中断,图中给出了块堆栈中的数据动态变化的情况。

  CPU处于STOP模式时,可以在CPU的模块信息对话框中,查看块堆栈保存的进入STOP模式时没有处理完的块,在块堆栈中,信息按照它们被处理的顺序存储(见图4-5)。

  每个中断优先级对应的块堆栈可以储存的数据的字节数与CPU的型号有关。


堆栈操作 块堆栈


  3.中断堆栈(1堆栈)

  如果程序的执行被优先级更高的OB中断,操作系统将保存下述寄存器的内容当前的累加器和地址寄存器的内容、数据块寄存器中DB和DI的内容、局部数据的指针、状态字、MCR(主控继电器)寄存器和块堆栈的指针。新的OB执行完后,操作系统读取中断堆栈中的信息,从被中断的块被中断的地方开始继续执行程序。

6AV2124-0QC02-0AX1
6GK1503-2CB00
6ES7954-8LF03-0AA0
6ES7131-4BD01-0AB0
6EP1434-2BA20
3RN1022-2DW00
6SE6420-2UD31-1CA1
6GK5004-1BF00-1AB2
6ES7431-7KF00-0AB0
6ES7231-4HA30-0XB0
6ES7513-1AL02-0AB0
6AV2124-0UC02-0AX1
5SY6116-7CC
6ES7195-1GF30-0XA0
6EP1961-3BA21
6ES7416-3FS06-0AB0
5SY6510-7CC
6AV6381-2BE07-5AV0
6AV6381-2BH07-5AV0
6AV6381-2BF07-5AV0
6AV6381-2BN07-5AV0
6AV6381-2BS07-5AV0
6AV6381-2BQ07-5AV0
6GK5108-0BA00-2AC2
6GK5206-2BB00-2AC2
6SE6420-2UD25-5CA1
6GK5101-1BB00-2AA3
6FC5370-3AM20-0AA0
5SY4106-7CC
5SY4110-7CC


展开全文
优质商家推荐 拨打电话