欢迎光临浔之漫智控技术(上海)有限公司网站!
诚信促进发展,实力铸就品牌
服务热线:

15618722057

技术文章 / article 您的位置:网站首页 > 技术文章 > 四川内江西门子PLC模块销售

四川内江西门子PLC模块销售

发布时间: 2024-03-25  点击次数: 88次

四川内江西门子PLC模块销售


(1) 块号、块类型、优先级、被中断块的返回地址;

(2) 块寄存器DB、DI被中断前的内容;

(3) 临时变量的指针(被中断块的L堆栈地址)。

STEP 7中可使用的B堆栈大小是有限制的,对于S7-300 CPU,则可在B堆栈中存储8个块的信息。因此,块调用嵌套深度也是有限制的,多可同时激活8个块。

L堆栈是CPU内存中的一部分,它在块调用时被重新分配。L堆栈用来存储逻辑块中定义的临时变量,也分配给临时本地数据使用。梯形图的方块指令与标准功能块也可能使用L堆栈存储运算的中间结果。

2) 调用功能块FB

当调用功能块FB时,会有以下事件发生:

(1) 调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入L堆栈;

(2) 数据块DB寄存器内容与DI寄存器内容交换;

(3) 新的数据块地址装入DI寄存器;

(4) 被调用块的实参装入DB和L堆栈上部;

(5) 当功能块FB结束时,先前块的现场信息从块堆栈中弹出,临时变量弹出L堆栈;

(6) DB和DI寄存器内容交换。

当调用功能块FB时,STEP 7并不一定要求给FB形参赋予实参,除非参数是复式数据类型的IO形参或参数类型形参。如果没有给FB形参赋予实参,则功能块FB就调用背景数据块内的数值。该数值是在功能块的变量声明表内或背景数据块内设置的形参初始数值。

3) 调用功能块FC

当调用功能块FC时会有以下事件发生:

(1) 功能块FC实参的指针存到调用块的L堆栈;

(2) 调用块的地址和返回位置存储在块堆栈,调用块的局部数据压入L堆栈;

(3) 功能块存储临时变量的L堆栈区被推入L堆栈上部;

(4) 当被调用功能块FC结束时,先前块的信息存储在块堆栈中,临时变量弹出L堆栈。

因为功能块FC不用背景数据块,不能分配初始数值给功能块FC的局部数据,所以必须给功能块FC提供实参。

STEP 7为功能块FC提供了一个特殊的返回值输出参数(关键字:RET_VAL)。当在文本文件中创建功能块FC时,你可以在定义功能块FC命令后输入数据类型(如BOOL或INT)。对文本文件进行编译时,STEP 7会自动生成RET_VAL输出参数。当用STEP 7的程序编辑器(Program Editor)以增量模式创建功能块FC时,可在FC的变量声明表中声明一个输出参数RET_VAL,并指明其数据类型。

内江西门子PLC代理商功能块编程与调用举例

对功能块编程分两步进行:*步是定义局部变量(填写局部变量表);第二步是编写要执行的程序,可以用梯形图或语句表两种形式编程,并在编程过程中使用定义了的局部变量(数据)。

定义局部变量的工作内容包括:

(1) 分别定义形参、静态变量和临时变量(FC块中不包括静态变量);

(2) 确定各变量的声明类型(Decl.)、变量名(Name)和数据类型(Data Type),还要为变量设置初始值(Initial Value)(尽管对有些变量初始值不一定有意义)。如果需要还可为变量注释(Comment)。在增量编程模式下,STEP 7将自动产生局部变量地址(Address)。

写功能块程序时,可以用以下两种方式使用局部变量:

(1) 使用变量名,此时变量名前加前缀“#",以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。

(2) 直接使用局部变量的地址,这种方式只对背景数据块和L堆栈有效。

在调用FB块时,要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持*。在增量方式下,调用FB块时,STEP 7会自动提醒并生成背景数据块。此时也为背景数据块设置了初始值,该初始值与变量声明表中的相同。当然也可以为背景数据块设置当前值(Current Value),即存储在CPU中的数值。