多重背景数据块的使用

合集下载

西门子S7 1200 1500 PLC 从入门到精通

西门子S7 1200 1500 PLC 从入门到精通

读书笔记
这是《西门子S7-1200 1500 PLC 从入门到精通》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《西门子S7-1200 1500 PLC 从入门到精通》的读书笔记模板,可以替换为自己的精彩内容摘录。
感谢观看
3.5.1下载 3.5.2上传
3.6.1打印 3.6.2归档
3.7.1新建项目,硬件配置 3.7.2输入程序 3.7.3下载项目 3.7.4程序监视
3.8.1查找关键字或功能 3.8.2使用指令
3.9.1安装支持包 3.9.2安装GSD文件
4.2变量表、监控 表和强制表的应用
4.1 S7-1200/1500 PLC编程的基础知
6.5.1定时器 6.5.2计数器 6.5.3数学函数 6.5.4移动指令 6.5.5转换指令 6.5.6字逻辑运算指令 6.5.7移位和循环指令
6.6.1单一数据 6.6.2数据组 6.6.3 UDT数据建立及调用 6.6.4注释注解
6.7.1函数FC 6.7.2函数块FB 6.7.3中断程序
1
8.1通信基础 知识
2
8.2 S7通信
3
8.3 S7通信示 例
4 8.4 S7-1200
PLC之间的开 放式用户通信
5 8.5
PROFINET IO 通信
8.6 Modbus TCP通 信及其应用
8.7通过PN接口使用 Startdrive软件调 试 G120变频器实现
V/F控制
8.8 S7-1200 PLC 通过FB284实现 V90PN的EPOS控制

4.3位逻辑运算
01
4.4定时器 指令
02
4.5计数器
03
4.6比较指 令

多重背景数据块

多重背景数据块

多重数据块是数据块的一种特殊形式,如在OB1中调用FB10,在FB10中又调用FB1和FB2,则只要FB10的背景数据块选择为多重背景数据块就可以了,FB1和FB2不需要建立背景数据块,其接口参数都保存在FB10的多重背景数据块中。

建立多重背景数据块的方法是:在建立数据块只要在数据类型选项中选择“实例的DB”就可以了,见下例。

下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。

例如,PLC控制两台电机,且控制两台电机的接口参数均相同。

一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。

这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。

使用多重背景数据块就是为了减少数据块的数量。

像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。

拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。

对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。

这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。

原理图如下:首先,我们需要先后插入一个功能块FB10和数据块DB10,DB10就为FB10的多重背景多重数据块。

如下图:其次,需要在FB10中指定其所包含的背景数据块。

方法如下:在FB10局部变量定义窗口中,在“STAT”变量区中(必须在此变量区中)为每台电机的控制取好名称后,数据类型选择FB ,确认后,再把改为1,即功能块FB1。

如果你在变量表中已经定义了FB1的符号,则会自动出现其符号名。

地址一般由CPU根据FB1的接口参数数量自动计算得到,采用默认值就可以了。

STEP7在S7-SCL中如何调试多重背景

STEP7在S7-SCL中如何调试多重背景

介绍:在S7-SCL 中,可以像在STEP 7 LAD/STL/FBD编辑器一样编辑多重背景。

可以在如下条目中查找到关于断点的详细描述:« "How can you test a STEP 7 program with breakpoints?" 在条目 ID: 21336333过程描述见下表:编步骤号5 通过"Test > Breakpoints active" 切换至测试模式6 S7-SCL 编辑器窗口将被分割为两部分, 并且程序将运行到下一个断点。

如果程序停止在块调用的行(多 重背景),则选择 "Test > Execute call"。

在测试模式下,低等级的块被打开并被处理。

在处理后,程序返回调用位置。

1 234通过 S7-SCL 菜单命令"Tools > Settings..."打开"Settings"对话框,并选择"Compiler" 选项"Create Debug Info"并确认。

通过"Test > Operation > Test operation"操作,改变 CPU 模式至测试模式 保存并编译S7-SCL 程序,并下载到 CPU 中。

把光标移动至相应的程序行,并执行 "Test > Set breakpoint",来为多重背景设置断点。

在 令临近位置,断点以一个彩色的小圆圈显示。

页面。

激活 S7-SCL 指。

背景数据块解析

背景数据块解析
现有FB10,欲为其生成背景DB10,方法有二:·如果某个FB已经创建,则可在调用时,自动生成一个背景DB。call FB10,DB10 系统弹出对话框“实例数据块DB10不存在。是否要生成它?”提示是否为FB10创建其背景DB10。·在块目录里插入数据块,在“常规-第1部分”分页栏中的“名称和类型”框输入DB10,从“共享的 DB”、“实例 DB”下拉列表选择后者,并指明所属数据块为“FB10”。FB中有一个局域变量表和块参数。局域变量表里有:IN(输入参数)、OUT(输出参数)、IN_OUT(输入输出参数)STAT(静态参数)、TEMP(临时数据)。其中IN、IN_OUT、OUT为接口参数,将来直接体现在生成的FB块左右两侧,而STAT、TEMP为内部参数。除了TEMP参数外,其他类型的参数都将体现在背景DB中,意味着可以通过背景DB传递参数。FB定义的接口参数直接决定了其背景DB的结构。背景DB块中变量数据列表,包括标号、地址、声明、名称、类型、初始值、实际值、备注,8个字段。地址从0.0,依据每一个变量的声明及类型依次分配,先IN、OUT,后IN_OUT,最后为STAT。背景DB的变量都是其所属FB的映射,承担传递数据,背景DB不能被其它块引用。·FB调用不同背景DB, 一个FB可以调用不同的DB,这对于模块化编程时非常有好处的。类型相同的多个控制对象可以生成一种FB,针对各个对象的不同控制要求,可以调用不同的背景DB。
如:call FB10,DB10
call FB10,DB11
call FB10,DB12
·多重背景DB
FB中可以定义变量的数据类型为另一FB。例如在FB20中定义Motor1、Motor2变量为FB10类型,而FB10的背景数据块为DB10
近来有人常向我问起关于背景数据块,在此我转载一段我收集的笔记文本供大家参考学习:背景数据块,又称实例数据块(DI,Instance Data block),是西门子工控产品PLC s7-300/400当中,基于PC/PG编程软件Step 7(以下简称S7)中的一类数据存储区域。S7工程是由主循环块OB1,及其调用功能、功能块,以及各种中断组织块ห้องสมุดไป่ตู้OB)构成:·组织块(OB)·功能(FC)·系统功能(SFC)·功能块(FB)·系统功能块(SFB)S7程序包括逻辑块和数据块。相比于FC,FB带有一个存储区,也就是说,有一个局部数据块被分配给FB块,这个数据块被称为背景数据块。一个FB的时间标记要比其背景DB更新,即在用户生成一个背景数据块之前,相应的FB必须已经存在。

FB块的使用技巧和多重背景数据的使用

FB块的使用技巧和多重背景数据的使用

FB块的使用技巧和多重背景数据的使用
FB的使用技巧:FB的执行需要专门提供一个数据块DB,背景数据块DB,只能FB块访问使用它我
们先制作一个FB块,这里不在演示制作的过程(和FC一样),具体要求见下图:FB内程序建立完成后,
在OB1中调用(可多次调用 ...
FB的使用技巧:
FB的执行需要专门提供一个数据块DB,背景数据块DB,只能FB块访问使用它
我们先制作一个FB块,这里不在演示制作的过程(和FC一样),具体要求见下图:
FB内程序建立完成后,在OB1中调用(可多次调用)
因为FB可以多次调用,程序在运行的时候会有很多地方在使用FB,当我们需要看着FB内的程序进有很多实际参数给他不同的信号,我们无法看到我们想要的实际参数单独在FB内运行的效果,给用测试操作的功能,对FB内测行单独调试,方法如下图:
OK完成,可以对FB(多次调用的)进行单独的调试了
多重背景数据的使用:
(多重数据就是在一个FB内多次调用另一个FB,以达到减少FB使用数目的目的)
下面举个例子说明多重背景数据的使用:
前面我们建立了一个FB1(电机的启停控制),如果我们想控制很多电然而每个CPU支持调用FB数目是有限的,这边FB1(电机启停功能)用的多,就代表我们其他功
为了解决CPU能调用的FB数目有限这个局限,我们可以把很多FB1一起做成多重背景数据放到F 就解决了,方法入下图:
新建一个FB功能块(FB2)
OK,下面我们在OB1中调用FB2,就可以在不调用FB1的情况下达到多次调用FB1的效果了我们看一下DB102里的数据:
DB102里面集合了FB1的背景数据块的内容
使用小技巧。

STEP7数据块的作用

STEP7数据块的作用

STEP7数据块的作用我想问一下在STEP7中建立数据块(DB)有什么作用,变量表又有什么作用,它们只有监控变量的作用吗?修改会对项目有影响吗?STEP7中数据块(DB)和WICC中变量地址属性中数据DB 有关联吗?问题补充:如果我在WINCC中建立一个DB类型变量如DB0.DD0,那么我需要在STEP7中定义该变量吗?它的定义有范围吗?答复数据块是用作建立临时数据的,在与WINCC连接的时候可以关联,整个STEP7都可以关联,在程序中M的点是有限制的,而DB可以随着内存卡改变大小。

变量表就是一个调试工具。

回答者:小浩浩 - 新生第1级 2010-12-21 14:32建立数据块是用来集中地存取数据,便于对数据进行操作和管理.分为共享数据块和背景数据块.其中背景数据块是依附于与之相对应的功能块FB使用的.变量表可以用来批量地监管变量.在变量表中还可以对变量的状态和数值进行修改.修改后程序中引用的变量的值为修改后的值.便于对程序进行调试和强制.STEP7中数据块(DB)和WICC中变量地址属性中数据DB有关联吗?没错,它们是关联的,它们的地址相对应,DB代表数据块变量在wincc中被缩写例如:STEP7 中DB0.DBD0 对应 wincc中 DB0.DD0回答者:smarteye - 中级技术员第6级 2010-12-21 14:401.数据块DBDB用来存储用户数据及程序的中间变量,为全局变量。

DB的最大容量,S7-300为32KB,S7-400为64KB。

DB可分为共享数据块(Share DB)、背景数据块(Instance DB)和用户自定义数据(UDT)类型的数据块。

共享数据块可作为所有程序使用的全局变量,在CPU允许的条件下,一个程序可创建任意多个DB,每个DB的最大容量为64KB。

默认条件下,共享数据块为掉电保持,在其属性菜单中选中“Non Retain”可以更改为掉电数据丢失。

如CPU中无足够的内部存储空间保存数据,可将指定的数据保存到共享数据块。

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦FB和FC区别FB--功能块,带背景数据块 FC--功能,相当于函数FB,FC块均相当于子程序,既可以调用其它FB,FC块,也可以被OB,FB,FC块调用。

他们之间的主要区别是:1. FB使用背景数据块作为存储区,FC没有独立的存储区,使用全局DB或M区2. FB局部变量有STAT和TEMP,FC由于没有自己的存储区因此不具有STAT,TEMP本身不能设置初始值。

本质上,FB,FC的实现目的是相同的;无论何种逻辑要求,FB,FC均可实现。

只是实现方式效率不同,这也和工程师个人编程习惯有关。

FB块优点:1. 易于移植性,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景DB,同一个FB块就可以方便2. 多重背景,减少重复工作,提高效率3. 多次调用时,参数修改方便4. 有独立的存储区FC块优点:1. 小巧灵活,对于非多次调用的程序更易理解2. 不占用额外的存储资源FB,FC块管脚定义IN---------变量是外部输入的,只能被本程序块读,不能被本程序块写;OUT-------是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;IN_OUT--- 输入输出变量本程序块和其他程序都可以读写这个引脚的值。

TEMP -----临时变量,顾名思义是暂时存储数据的变量。

这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。

STAT-------在PLC运行期间始终被存储。

S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。

为何定义的FB,FC块,多次调用后程序混乱?对于,多次调用的程序块,FB块建议更换调用不同的背景DB;FC则需要确保使用的存储地址不重复,即每次调用,块中调用的地址不重复。

为何含有定时器或计数器的FB或FC单次调用ok,多次调用时定时器或计数器混乱?对于多次调用的FB,FC,如为S7定时器,计数器,则需要在IN 接口中定义TIMER或Counter,每调用一次FB或FC,均赋不同的定时器或计数器号。

多重背景数据块的使用

多重背景数据块的使用

多重背景数据块得使用当功能块FB1在组织块中被调用时,使用了与FB1相关联得背景数据块。

这样FB1有几次调用,就必须配套相应数量得背景数据块。

当FB1得调用次数较多时,就会占用更多得数据块。

使用多重背景数据块可以有效地减少数据块得数量,其编程思路就是创建一个比FB1级别更高得功能块,如FB10,对于FB1得每一次调用,都将数据存储在FB10得背景数据块中。

这样就不需要为FB1分配任何背景数据块。

下面以发动机组控制系统为例,介绍如何编辑与使用多重背景数据块。

例发动机组控制系统设计——使用多重背景设某发动机组由1台汽油发动机与1台柴油发动机组成,现要求用PLC控制发动机组,使各台发动机得转速稳定在设定得速度上,并控制散热风扇得启动与延时关闭。

每台发动机均设置一个启动按钮与一个停止按钮。

项目得编程步骤如下:(1)创建S7项目。

使用菜单“文件” “新建工程”向导创建发动机组控制系统得S7项目,并命名为“多重背景”。

CPU选择CPU 315-2DP,项目包含组织块OB1。

(2)硬件配置。

在“多重背景”项目内打开“SIMATIC 300(1)”文件夹,打开硬件配置窗口,并按图1完成硬件配置。

图1 硬件配置(3)编辑如图2所示得符号表。

图2 符号表(4)规划程序结构。

程序结构规划如图3所示。

FB10为上层功能块,它把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽油机与柴油机得控制。

这种调用不占用数据块DB1与DB2,它将每次调用(对于每个调用实例)得数据存储到体系得上层功能块FB10得背景数据块DB10中。

图3 程序结构(5)编辑功能(FC)。

FC1用来实现发动机(汽油机或柴油机)得风扇控制,按照控制要求,当发动机启动时,风扇应立即启动;当发动机停止后,风扇应延时关闭。

因此FC1需要一个发动机启动信号、一个风扇控制信号与一个延时定时器。

1)定义局部变量声明表。

局部变量声明表如表1所示,表中包含3个变量,两个IN变量,1个OUT变量。

多重背景数据块使用

多重背景数据块使用

多重数据块是数据块的一种特殊形式,如在OB1中调用FB10,在FB10中又调用FB1和FB2,则只要FB10的背景数据块选择为多重背景数据块就可以了,FB1和FB2不需要建立背景数据块,其接口参数都保存在FB10的多重背景数据块中。

建立多重背景数据块的方法是:在建立数据块只要在数据类型选项中选择“实例的DB”就可以了,见下例。

下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。

例如,PLC控制两台电机,且控制两台电机的接口参数均相同。

一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。

这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。

使用多重背景数据块就是为了减少数据块的数量。

像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。

拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。

对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。

这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。

原理图如下:500)this.width=500" border=0>首先,我们需要先后插入一个功能块FB10和数据块DB10,DB10就为FB10的多重背景多重数据块。

如下图:500)this.width=500" border=0>其次,需要在FB10中指定其所包含的背景数据块。

方法如下:在FB10局部变量定义窗口中,在“STAT”变量区中(必须在此变量区中)为每台电机的控制取好名称后,数据类型选择FB ,确认后,再把改为1,即功能块FB1。

S7-1200PLC多重背景数据块DB使用方法

S7-1200PLC多重背景数据块DB使用方法

S7-1200PLC多重背景数据块DB使用方法前两次文章和大家讲解了FB FC块使用方法,其中包含带参数、多次调用、全局库知识点,那么结合前两次内容给大家补充一个技巧,如何通过多次调用FB或FC块并产生一个DB背景数据块,统称为:多重背景数据DB块。

一、创建一个FB块(电机正反转互锁)第一步:(添加FB块,命名为:正反转)二、编写FB块参数与程序第一步:(填写接口参数地址与数据类型)Input(输入接口)正转启动(数据类型BOOL)反转启动(数据类型BOOL)停止按钮(数据类型BOOL)InOut(输入输出接口)正转启动(数据类型BOOL)反转启动(数据类型BOOL)第二步:(编写正反转程序)三、创建一个FB块作为多重背景存放第一步:(创建FB100块,作为多重背景存放区)FB编号可以根据调用的FB多少来确定,当然越大越好。

第二步:(在FB100接口Static(静态变量)参数中创建调用FB 块多重背景名称)根据自己需要调用次数来填写,比如我需要调用三次,那么就创建三个即可,其它以此类推,FB块多重背景名称可以随意定义,没有固定的名称。

四、调用FB块第一步:(在FB100中调用FB1正反转程序)调用时选择多重背景,然后在多重背景接口参数中的名称选择在FB100接口参数中Static(静态变量)创建的名称,通过编号1 2 3排列。

第二步:(填写FB1正反转管脚地址)五、查看背景数据DB块第一步:(创建DB块,命名为:正反转背景DB块)第二步:(调用三次FB块,背景数据块全部集成在一个背景DB 块中)按照正常调用法,每次调用一个FB或FC块都要产生一个DB背景数据块,这样浪费并占地方,一个背景DB块可以存入1万6千多个数据,所以这样很浪费,因此采用多重背景数据DB,把所有数据都放在一个背景数据块中。

六、演示效果第一步:(三个FB正反转块全部同时启动电机正转)它们之间相互互不影响,可以同时启动,同时停止,同时反转。

块调用与多重背景模型

块调用与多重背景模型

程序 执行
CALL FC10
On_1 := On_2 := Off := I 0.1 I 0.2 Q8.0 BLD = UC 1 L FC P#I P#I P#Q 2 20.0 10 0.1 0.2 8.0
BLD
... A A = ...
#On_1 #On_2 #Off
块参数
实际参数
形式参数
SIMATIC S7
SITRAIN Training for
Automation and Drives
功能及功能块中的参数声明
参数是信息传递的通道
输入参数: 输入参数: Caller -> Block 输出参数: 输出参数: Block -> Caller 输入/输出参数 输出参数: 输入 输出参数: Caller <-> Block 地址 0.0 0.1 2.0 2.0 8.0 10.0 ... ... 声明 输入 输入 输入 输出 输出
FB 1
地址 0.0 0.1 2.0 4.0 6.0 0.0 . . . A AN = .
. .
#Start #Stop #Motor_on
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2010-9-4 PRO2_06E.2
SITRAIN Training for
输入 输入 输出 ...
On_1 On_2 Off
BOOL BOOL BOOL
扩展了处理器的指令集
... A A = ...
#On_1 #On_2 #Off
SIMATIC S7
Siemens AG 2001. All rights reserved.

西门子PLC高级编程1_块调用与多重背景模型

西门子PLC高级编程1_块调用与多重背景模型

SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2018/7/13 PRO2_06E.3
SITRAIN Training for
Automation and Drives
功能及功能块中的参数声明
参数是信息传递的通道
输入参数: Caller -> Block
.
.
.
A
#Start
AN #Stop
=
#Motor_on
.
类型 BOOL BOOL BOOL INT INT INT
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2018/7/13 PRO2_06E.2
SITRAIN Training for
Date: File:
2018/7/13 PRO2_06E.11
SITRAIN Training for
Automation and Drives
使用复杂数据类型的FB调用过程
示例:将一个ARRAY传送到一个功能块
FB17
DB2 "Temperature"
只允许用符号对复杂参数进行相关分配
Network 1:
CALL FBx, DBy
... ...
FBx 控制算法 DBx
+
DBy
Drive_1 状 态数据
FB实例
FB内的声明 (多 重背景)
FB
... stat Motor_1 FBx stat Motor_2 FBx
CALL #Motor_1 . CALL #Motor_2

STEP 7中FB生成多重背景数据块

STEP 7中FB生成多重背景数据块
4 一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出 现一个消息显示在 FB 接口声明中有一个 UDT 或本地标签的被修改,并显 示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调 用在 LAD/STL/FBD 编辑器中将会以亮红色显示。 为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。
*************************************************************************************
************************************************************************************* 以下详细讲解西门子多重背景数据块的使用。
程序的结构。 通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。在
编译后,STEP 7 程序一致性将统一。
图5 当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图 6)。 也可以改变此设置:
图6 一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景 的属性只可以显示,除非按照一个冗长的过程来修改它。
图3
5
在后续的对话框中,点击 OK 来执行接口更新。
图4 在 STEP 7 V5.3 中的注意事项: 当尝试通过“File > Check and Update Accesses”来更新程序块调用时, STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通 过“Edit > Call > Update”改正调用错误。更新调用的唯一办法是删除调用, 在声明中更新接口,然后再以多重背景方式调用功能块。如果已经删除了 FB 接口中的变量,应该通过“Edit > Call > Update”来改正所有的多重背景调用, 而不需使用前面的“Check and Update Accesses”功能。一旦已经更新了这些 多重背景,就又可以与平时一样使用“Check and Update Accesses”功能了。 6 推荐在更新功能块调用后进行一致性检查。在 SIMATIC Manager 中,右击 S7 program 文件夹,选择“Check block consistency...”功能,系统会显示 S7

多重背景数据块的使用(图)

多重背景数据块的使用(图)

先建立一个FB10。

完成内容X*Y=Z定义形式参数IN:X,YOUT:Z保存然后在建立FB20,形式参数STAT里定义NAME:MULData Type:FB10程序中写以反复的写call MUL。

保存OB1中写CALL FB20,DB10DB10为多重背景数据块注意一点,多重背景调用等同于FC的调用,call MUL下的参数填写一定不能空着,必须有实际地址,否则用DB10的数据程序会混乱。

以下详细讲解西门子多重背景数据块的使用。

1、在SIMATIC Manager 中,打开你希望生成多重背景的FB。

在静态变量定义部分,输入多重背景的名字,数据类型为FB 或SFB。

图12、在程序中调用多重背景,可以在多重背景中的目录中选择托拽它到NETWORK 中,也可以用CALL 指令调用它。

图2在STEP 7 V5.4 SP2 中请注意:如果在LAD/FBD编辑器的目录视图中多重背景未被列出,推荐在静态变量声明中先插入一个功能块,然后再删除它。

这样多重背景就再次可以被选择。

3、现在设置程序块的输入和输出并保存。

就可以在程序(例如OB1)中使用多重背景来调用FB。

创建一个背景数据块以供监控。

注意:当生成多重背景时,如其在FB 中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。

如果不遵从这个顺序,程序中将会出现不一致的情况,这种不一致的情况也有可能在修改多重背景后出现。

4、一旦修改过了多重背景,并打开调用它的功能块。

当功能块被打开时,会出现一个消息显示在FB 接口声明中有一个UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。

确认此信息,修改过的背景调用在LAD/STL/FBD 编辑器中将会以亮红色显示。

为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。

图35、在后续的对话框中,点击OK 来执行接口更新。

图4在STEP 7 V5.3中的注意事项:当尝试通过“File > Check and Update Accesses”来更新程序块调用时,STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“Edit > Call > Update”改正调用错误。

STEP7如何使用多重背景数据块

STEP7如何使用多重背景数据块

STEP7如何使用多重背景数据块多重数据块是数据块的一种特殊形式,如在OB1中调用FB10,在FB10中又调用FB1和FB2,则只要FB10的背景数据块选择为多重背景数据块就可以了,FB1和FB2不需要建立背景数据块,其接口参数都保存在FB10的多重背景数据块中。

建立多重背景数据块的方法是:在建立数据块只要在数据类型选项中选择“实例的DB”就可以了,见下例。

下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。

例如,PLC控制两台电机,且控制两台电机的接口参数均相同。

一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。

这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。

使用多重背景数据块就是为了减少数据块的数量。

像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。

拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。

对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。

这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。

原理图如下:首先,我们需要先后插入一个功能块FB10和数据块DB10,DB10就为FB10的多重背景多重数据块。

如下图:其次,需要在FB10中指定其所包含的背景数据块。

方法如下:在FB10局部变量定义窗口中,在“STAT”变量区中(必须在此变量区中)为每台电机的控制取好名称后,数据类型选择FB ,确认后,再把改为1,即功能块FB1。

如果你在变量表中已经定义了FB1的符号,则会自动出现其符号名。

地址一般由CPU根据FB1的接口参数数量自动计算得到,采用默认值就可以了。

s7300搜索变量和建立多重背景数据块

s7300搜索变量和建立多重背景数据块

做这一行的应该都知道s7-200是小型PLC,只是做做小项目涉及到的数据变量不多所以一般都没有用交叉数据,但是用S7-300/400做项目的时候可能有成千上万个变量,有这么的组织块我怎么知道我所要查找得变量在那里呢?这个时候我们怎么去搜索这些变量呢?那么这个时候用数据交叉表来检索我要查得数据无疑会给我们带来无比的方便,具体在simatic软件操作方法小弟用图片的形式展现给大家:
上图就把你所选择站点的全部变量就搜索出来了,并且标识了该数据在那个块使用,所以使用交叉数据表就给我们在查询变量的带来很大的方便。

以上就是小弟分享的simatic中数据交叉表的使用,虽然能力有限,但用心在做;
希望大家多多关注”佛山自动化“在百度贴吧里!
谢谢!
西门子s7-300 UDT与多层背景数据块
UDT和多层数据背景块在大型的项目中使用会给我们在编写程序的时候减少很
多麻烦,并且可以让我们的程序过程和步骤更加清晰;希望大家能够参和我讨论!让我们共同进步。

西门子FB块调用之多重实例的应用

西门子FB块调用之多重实例的应用

西门子FB块调用之多重实例的应用S7-1200/300/1500中的程序块分为用于程序编写的OB块、FC 块、FB块和用于存储数据的DB块,DB块又分为“全局DB和背景DB”。

FB块是具有存储器的代码块,可将值存储于背景DB中,即使在执行完成后,这些值仍然有效。

所有在调用FB块时需要为其分配相应背景DB块。

在分配背景DB块时,可选择分配“单个实例”、“多重实例”和“参数示例”,如下图所示:这次主要介绍下“多重实例”的调用和在什么情况下选择使用“多重实例”。

(1)什么叫“多重实例”?当在大量调用FB块时,若每个FB块都为其分配“单个实例”,则会生成很多个数据块,这样占用的数据块资源就比较多。

比如在编写程序时,使用了较多的定时器指令,对应定时器指令,每个定时器其实就是一个小FB块,当使用定时器指令时就需要分配一个背景DB 块。

这样在程序的资源里面就可看到生成了好多个背景DB,如下图程序所示,在程序中调用了两个定时器指令,每个第定时器指令都需要为其分配对应的DB块。

打开程序块>>>>系统块>>>>程序资源,在里面可看到定时器所分配的背景DB块,若使用的定时器指令比较多少,而且都采用“单个实例”的方式分配的背景DB块,那么在程序资源中就会出现很多个DB块,这不方便管理,所以对应该种情况,可选择使用“多重实例”的方式进行处理。

在一个FB块中去调用其余的小FB块,然后在分配背景DB时可选择“多重实例”,当在OB块中调用主FB块时就会生成一个总的背景数据块,这些小的FB 块的数据存储在主FB的静态变量中,这就是“多重实例”。

但并不是在任何的块中调用FB时都可选择分配“多重实例”,只有在FB块中调用FB 块时才可选择多重实例,因为多重实例时存储于静态变量中,只有FB块才具备又静态变量的变量类型。

(2)多重实例应用示例【示例】按下启动按钮,电机延时3秒后启动运行,运行5秒后电机自动停止运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多重背景数据块的使用
当功能块FB1在组织块中被调用时,使用了与FB1相关联的背景数据块。

这样FB1有几次调用,就必须配套相应数量的背景数据块。

当FB1的调用次数较多时,就会占用更多的数据块。

使用多重背景数据块可以有效地减少数据块的数量,其编程思路是创建一个比FB1级别更高的功能块,如FB10,对于FB1的每一次调用,都将数据存储在FB10的背景数据块中。

这样就不需要为FB1分配任何背景数据块。

下面以发动机组控制系统为例,介绍如何编辑和使用多重背景数据块。

例发动机组控制系统设计——使用多重背景
设某发动机组由1台汽油发动机和1台柴油发动机组成,现要求用PLC控制发动机组,使各台发动机的转速稳定在设定的速度上,并控制散热风扇的启动和延时关闭。

每台发动机均设置一个启动按钮和一个停止按钮。

项目的编程步骤如下:
(1)创建S7项目。

使用菜单“文件” “新建工程”向导创建发动机组控制系统的S7项目,并命名为“多重背景”。

CPU选择CPU 315-2DP,项目包含组织块
OB1。

(2)硬件配置。

在“多重背景”项目内打开“SIMATIC 300(1)”文件夹,打开硬件配置窗口,并按图1完成硬件配置。

图1 硬件配置
(3)编辑如图2所示的符号表。

图2 符号表
(4)规划程序结构。

程序结构规划如图3所示。

FB10为上层功能块,它把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽油机和柴油机的控
制。

这种调用不占用数据块DB1和DB2,它将每次调用(对于每个调用实例)
的数据存储到体系的上层功能块FB10的背景数据块DB10中。

图3 程序结构
(5)编辑功能(FC)。

FC1用来实现发动机(汽油机或柴油机)的风扇控制,按照控制要求,当发动机启动时,风扇应立即启动;当发动机停止后,风扇应延
时关闭。

因此FC1需要一个发动机启动信号、一个风扇控制信号和一个延时
定时器。

1)定义局部变量声明表。

局部变量声明表如表1所示,表中包含3个变量,两个IN变量,1个OUT变量。

表1 变量声明表
接口类型变量名数据类型注释
IN Engine_On BOOL 发动机的启动信号
IN Timer_Off Timer 用于关闭延迟的定时器功能
OUT Fan_On BOOL 启动风扇信号
2)编辑FC1的控制程序。

FC1所实现的控制要求:发动机启动时风扇启动,当发动机再次关闭后,风扇继续运行4s,然后停止。

定时器采用断电延
时定时器,控制程序如图4所示。

图4 FC1控制程序
(6)编辑共享数据块。

共享数据块DB3可为FB10保存发动机(汽油机和柴油机)的实际转速,当发动机转速都达到预设速度时,还可以保存该状态的标志数
据。

DB3的数据如图5所示。

图5 共享数据块DB3
(7)编辑功能块(FB)。

在该系统的程序结构内,有2个功能块:FB1和FB10。

FB1为底层功能块,所以应首先创建并编辑;FB10为上层功能块,可以调用FB1。

1)编辑底层功能块FB1。

在项目内创建FB1,符号名“Engine”。

定义功能块FB1的变量声明表如表2所示。

FB1主要实现发动机的启停控制及速度监视功能,其控制程序如图6所示。

图6 FB1程序
2)编辑上层功能块FB10。

在项目内创建FB10,符号名“Engines”。

在FB10的属性对话框内激活“多情景标题”选项,如图7所示。

图7 将FB10设置成使用多重背景的功能块
要将FB1作为FB10的一个“局部背景”调用,需要在FB10的变量声明表中为FB1的调用声明不同名称的静态变量,数据类型为FB1(或使用符号名“Engine”),如表3所示。

表3 FB10的变量声明表
在变量声明表内完成FB1类型的局部实例:“Petrol_Engine”和“Diesel_Engine”的声明以后,在程序元素目录的“多重实例”目录中就会出现所声明的多重实例,如图8所示。

接下来可在FB10的代码区,调用FB1的“局部实例”。

图8 调用局部实例
编写功能块FB10的控制程序如图9所示。

调用FB1局部实例时,不再使用独立的背景数据块,FB1的实例数据位于FB10的实例数据块DB10中。

发动机的实际转速可直接从共享数据块中得到,如DB3.DW0(符号地址为“S_Data”.PE_Actual_Speed)。

图9 FB10的控制程序
(8)生成多重背景数据块DB10。

在项目内创建一个与FB10相关联的多重背景数据块DB10,符号名“Engine_Data”。

如图10所示。

图10 DB10的数据结构
(9)在OB1中调用功能(FC)及上层功能块(FB)。

OB1控制程序如图11所示,“程序段4”中调用了FB10。

图11 OB1控制程序
使用多重背景时应注意以下问题:
(1)首先应生成需要我次调用的功能块(如例中的FB1)。

(2)管理多重背景的功能块(如例中的FB10)必须设置为有多重背景功能。

(3)在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量,以被调用的功能块的名称(如FB1)作为静态变量的数据类型。

(4)必须有一个背景数据块(如DB10)分配给管理多重背景的功能块。

背景数据块中的数据是自动生成的。

(5)多重背景只能声明为静态变量(声明类型为“STAT”)。

相关文档
最新文档