珠海西门子PLC一级代理商S7-1200模块珠海西门子PLC代理,珠海西门子S7-1200代理,西门子PLC代理
西门子PLC在用户程序中使用的堆栈有哪几种
堆栈(见图4-4)是CPU中的一块特殊的存储区,它采用“先入后出”的规则存入和取出数据。堆栈*上面的存储单元称为栈顶,要保存的数据从栈顶“压入”堆栈时,堆栈中原有的数据依次向下移动一层,*下面的存储单元的数据丢失。在取出栈顶的数据后,堆栈中所有的数据依次向上移动一层。堆栈的这种“先人后出”的存取顺序,刚好满足块调用时(包括中断处理的块调用)存储和取出数据的要求,因此堆栈在计算机的程序设计中得到了广泛的应用。下面介绍STEP7中3种不同的堆栈。
在多段流水线中,CPU从V存储器中的包络表自动读取各脉冲列段的特性。该模式下仪使用特殊存储器区的控制字节和状态字节。选择多段操作时必须在SMW168成SMW178中装人包络表的V存储区的偏移地址。周期基准可选用us或ms,包络表中的所有周期必须使用同一时间基准,在包络表运行过程中不能改变它。多段操作可用PLS指令启动,各段输人的长度为8字节,由16位周期值、16位周期增量值和32位脉冲数值组成。
包络表如表6-30所示,多段PTO的另一特点是能以指定的脉冲数白动增加或减少周期,在周期增量区输人一个正值将增加周期,输人一个负值将减小周期,输人为0时周期不变。
如果指定的周期增量值使得在输出一定数量的脉冲后导致非法的周期值,会产生一个算术溢出错误,同时终止PTO功能,输出改为由映像寄存器控制。另外,状态字节中的增量计算错误位(SM66.4或SM76.4)被设管为1。
生成一个名为“OB40例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU315-2DP。选中SIMATIC管理器左边的300站对象,双击右边窗口的“硬件”图标,打开硬件组态工具HW Config(见图4-47)。将硬件目录中名为“DI4xNAMUR,Ex”的4 点DI模块插入4号槽,16点D0模块插入5号槽。
自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-47的右图)。用复选框启用硬件中断,设置10.0产生上升沿中断,10.1产生下降沿中断。
2. 编写OB40中的程序
OB40中的程序(见图4-48)判断是哪个模块的哪个点产生的中断,然后执行相应的操作。临时局部变量OB40_MDL_ADDR和OB40_POINT_ADDR分别是产生中断的模块的起始字节地址和模块内的位地址,数据类型分别为WORD和DWORD,这两个变量不能直接用于整数比较指令和双整数比较指令。
局部数据堆栈(L堆栈)
珠海西门子PLC一级代理商S7-1200模块珠海西门子PLC代理,珠海西门子S7-1200代理,西门子PLC代理
各逻辑块都有它的局部变量(L)存储区,局部变量在逻辑块的变量声明表中生成,只在它被创建的块中有效。每个组织块用20B的临时局部数据来存储它的启动信息。局部数据可以按位、字节、字和双字来存取,例如L0.0、LB9、LW4和LD52。
生成多重背景功能块时,应采用默认的设置,激活功能块属性对话框中的复选框“多情景标题”(即多重背景功能)。
生成FB10时,首先应生成FB1。为调用FB1,在FB10的变量声明表中(见图4-37),声明两个静态变量(STAT)“Petrol_Engine”(汽油发动机)和“Diesel_Engine”(柴油发动机),其数据类型为FB1(符号名为“发动机控制”)。变量声明表的文件夹“Petrol_Engine”和“Diesel_Engine”中的6个变量来自FB1的变量声明表,不是用户在FB10中输入的。
生成静态变量“Petrol_Engine”和“Diesel_Engine”后,它们将出现在程序编辑器左边目录窗口的“多重实例”文件夹中(见图4-37)。将它们“拖放”到FB10的程序区(见图4-38),然后指定它们的输入参数和输出参数。