| 注册| 产品展厅| 收藏该商铺

行业产品

当前位置:
西门子CPU模块>>西门子>>西门子PLC代理商>> 广元西门子PLC代理商

广元西门子PLC代理商

返回列表页
  • 广元西门子PLC代理商
  • 广元西门子PLC代理商
  • 广元西门子PLC代理商
  • 广元西门子PLC代理商
  • 广元西门子PLC代理商
收藏
举报
参考价 面议
具体成交价以合同协议为准
  • 型号
  • 品牌 Siemens/西门子
  • 厂商性质 经销商
  • 所在地 上海市
在线询价 收藏产品

更新时间:2023-07-28 17:27:04浏览次数:131

联系我们时请说明是化工仪器网上看到的信息,谢谢!

同类优质产品

更多产品

产品简介

产地类别 进口
广元西门子PLC代理商
SIEMENS 可编程控制器
  1、 SIMATIC S7 系列PLC:S7-200、S7-1200、S7-300、S7-400、ET-200
  2、 逻辑控制模块 LOGO!230RC、230RCO、230RCL、24RC、24RCL等
  3、 SITOP直流电源 24V DC 1.3A、2.5A、3A、5A、10A、20A、40A可并联.

详细介绍

广元西门子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,并指明其数据类型。

功能块编程与调用举例

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

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

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

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

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

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

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

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

1.二分频器

假设功能块FC10是二分频器产生程序,功能是对不同的输入位进行二分频处理。以下给出了FC10的变量声明表和语句表程序。在程序中使用了跳变沿检测指令。

1) FC10的变量声明表(见表5.3)

Address Decl. Symbol Data Type Initial Value Comment

0.0 In INP BOOL FALSE 脉冲输入信号

1.0 Out OUTP BOOL FALSE 脉冲输出信号

2.0 In_Out ETF BOOL FALSE 跳变沿标志

2) 语句表程序

Network 1

A #INP 对脉冲输入信号产生RLO

FP #ETF 对前面的RLO进行跳变沿检测,若有正跳沿则RLO=1,否则RLO=0

NOT 取反RLO

BEC 若RLO=1(没有正跳沿),结束块;若RLO=0(有正跳沿),继续执行下一条指令

AN #OUTP

= #OUTP 输出信号反转

BEU 无条件结束块

在功能块FCl0中定义了三个形参,程序中以引用变量名方式使用了形参变量。也可以为FC10在符号表中定义一个符号名,如“BINARY",并选用以下两种方式之一调用功能块FC10。调用时为形参分别赋予实参I0.0、Q4.0和M10.0,以对输入位I0.0进行二分频以产生输出脉冲Q4.0。

调用方式1 调用方式2

CALL FC10 CALL BINARY

INP:= I0.0 INP:= I0.0

OUTP:= Q4.0 OUTP:= Q4.0

ETF:= M10.0 ETF:= M10.0

2.读模拟输入量程序

一些S7-300的应用系统中,使用8通道模拟量模块采集信号,当模块数量较多时,读模拟输入量就很繁琐。下面给出一个通用程序FC100,利用它可以方便地把模拟量读回并顺序存入数据块,因为模入模块的起始地址、通道数、存储数据块号及数据在数据块中的存储起始位置均是可变的,所以可在调用FC100时灵活确定。

Address Decl. Symbol Data Type Initial Value Comment

0.0 In PIW_Addr INT

模入模块通道起始地址

2.0 In CH_LEN INT

要读入的通道数

4.0 In DB_No INT

存储数据块号

6.0 In DBW_Addr INT

存储在数据块中的字地址

Network 1

L #DB_No

T LW0

OPN DB[LW 0] 打开存储数据块

L #PIW_Addr

SLD 3 形成模入模块地址指针

T LD4 在临时本地数据双字LD 4中存储模入模块地址指针

L #DBW_Addr

SLD 3 形成数据块存储地址指针

T LD8 在临时本地数据双字LD 8中存入数据块存储地址指针

L #CH_LEN 以要读入的通道数为循环次数,装入累加器1

2.读模拟输入量程序

一些S7-300的应用系统中,使用8通道模拟量模块采集信号,当模块数量较多时,读模拟输入量就很繁琐。下面给出一个通用程序FC100,利用它可以方便地把模拟量读回并顺序存入数据块,因为模入模块的起始地址、通道数、存储数据块号及数据在数据块中的存储起始位置均是可变的,所以可在调用FC100时灵活确定。

广元西门子PLC代理商

收藏该商铺

登录 后再收藏

提示

您的留言已提交成功!我们将在第一时间回复您~
二维码 意见反馈
在线留言