多重背景数据块的使用(图)
多重背景数据块
多重数据块是数据块的一种特殊形式,如在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的接口参数数量自动计算得到,采用默认值就可以了。
多重背景数据块的使用
编写功能块FB10的控制程序
调用FB1局部实例时,不再使用独立的背景数据块,FB1的实例数据位于FB10的实例数据块DB10中。发动机的实际转速可直接从共享数据块中得到,如DB3.DBW2 (符号地址为, S_Data".PE_Actual_Speed)。
生成多重背景数据块DB10
在“多重背景”项目内创建一个与FB10相关联的多重背 景数据块DB10,符号名“Engine_Data”。
5. 编辑功能(FC)
(1)定义局部变量声明表 FC1用来实现发动机(汽油机或柴油机)的风扇控制,按照控制要求,当发动机起动时,风扇应立即起动;当发动机停机后,风扇应延时关闭。因此FC1需要一个发动机起动 信号、一个风扇控制信号和一个延时定时器。
编辑FC1的控制程序 FC1所实现的控制要求:发动机起动时风扇起动,当发动机再次关闭后,风扇继续运行4s,然后停止。定时器采用 断电延时定时器,控制程序如下图所示。
第23讲 多重背景数据块的使用
3.编辑符号表
4.规划程序结构
FB10为上层功能块,它把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽油机和柴油机的控制。这种调用不占用数据块DB1和DB2,它将每次调用(对于每个调用实例)的数据存储到体系的上层功能块FB10的背景数据块DB10 中。
01
(1)编辑底层功能块FB1
在“多重背景”项目内创建FB1,符号名“Engine”。 定义功能块FB1的变量声明表
FB1主要实现发动控制程序
编辑上层功能块FB10
在“多重背景”项目内创建FB10,符号名“Engines”。在FB10的属性对话框内激活“Multi-instance capable”选项。
STEP7中功能块FB里的stat静态变量与C语言里静态分配的变量性质是否一样?
STEP7中功能块FB里的stat静态变量与C 语言里静态分配的变量性质是否一样?C语言里静态变量是从栈里分配的,当函数执行完后会自动释放。
那么STEP7中FB里的静态变量在系统分配的机制是否也是如何?是否在FB执行完之后会自己释放?STEP7中引用静态变量stat有啥意义?最佳答案静态变量是FB专有的,其是与背景块一一对应,可以这么说静态变量就是FB的背景数据块。
其作用就是背景数据块的作用,背景块的作用就是,自己编自己的FB,在声明表里定义好自己的静态变量,使用很方便不用考虑使用其它全局变量时,要知道哪个是空的,哪个是别人用过的,就是重叠问题。
尤其是多人编一个系统时就更有用了,用FC 就没有这个优势。
每次调用功能块(FB)时,会被分配一个背景数据块。
此FB的实际参数和静态参数都被存储在该背景数据块中。
在FB中声明的变量决定背景数据块的结构。
背景指定了功能块的调用。
FB2可以使用FB1背景数据块中的静态变量,但需要满足以下条件:(即使用多重背景时应注意的问题):1.在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量,以被调用的功能块的名称(如FB1)作为静态变量的数据类型。
2.应生成需要调用的功能块(如FB1)。
3.在管理多重背景的功能块(如FB2)必须设置为多重背景功能。
4.必须有一个背景数据块(如DB1)分配给管理多重背景的功能。
背景数据块中的数据是自动生成。
5.多重背景只能声明静态变量(声明类型为“STAT”)。
其具体可参考:1.为什么使用背景数据块,它与全局数据块有什么区别?:/Download/Upload/AS/FAQ/15 360455.pdf2.多重背景数据块的使用:/view/5dd57991daef5ef7ba0d3c2d.html。
西门子PLC-S1500--多重实例与参数实例
多重实例
多重实例的建立 1. 添加名叫阀和电机的FB块
2. 添加FB块,接口参数,建立程序
多重实例
3. 添加名为多重实例的FB块 在此块里,直接拖拽阀和电机的FB块进来,出现选择项,选择 多重实例,输入数据块的名称,点击OK,在块静态参数里就 出现了实例参数
多重实例
也可以在块静态参数自己添加实例参数
西门子PLC S1500 多重实例与参数实例
实例的基础知识
函数块的调用称为实例。实例使用的数据存储在背景数据块中。
单实例:被调用的函数块将数据保存在自已的背景数据块中 多重实例: 被调用的函数块将数据保存在调用函数块的背景数据块中,而非自己 的背景数据块中。 参数实例:将待调用的块实例作为 in/out 参数传送到调用块中。
ARRAY
当有多个功能相同的,比如有十个电机功能都相同,此时可添 加ARRAY类型的
多重实例
在此块实例调用
在OB1里调用多重实例的FB块
多重实例添加在背景数据块里
多重实例
参数实例
参数实例建立与多重实例建立类似,FB和FC调用FB时选择参 数实例选项,实例建立在FB块里的输入输出参数里
参数实例
也可以在块输入输出参数自己添加实例参数 在OB1调用参数实例FC
实例数据寻址
#<变量名称> #<多重实例名称>.<变量名称>
如何使用S7-300的DB块
S7-300的DB块如何使用?
最佳答案
数据块DB
DB用来存储用户数据及程序的中间变量,为全局变量。
DB的最大容量,
S7-300为32KB,S7-400为64KB。
DB可分为共享数据块(Share DB)、背景数据块(Instance DB)和用户自定义数据(UDT)类型的数据块。
★共享数据块可作为所有程序使用的全局变量,在CPU允许的条件下,一个程序可创建任意多个DB,每个DB的最大容量为64KB。
默认条件下,共享数据块为掉电保持,在其属性菜单中选中“Non Retain”可以更改为掉电数据丢失。
如CPU中无足够的内部存储空间保存数据,可将指定的数据保存到共享数据块。
存储在共享数据块中的数据可被其它任意一个块调用(全局变量)。
这一点和背景数据块不同,背景数据块只能被指定的功能块(FB)使用,保存在背景数据块中的数据只能在这个功能块中有效。
★背景数据块与FB和SFB关联,也是全局变量。
背景数据块和共享数据块相比,只保存与FB或SFB接口数据区(Temp)相关的数据。
背景数据块中有一种比较特殊的数据块,称为多重背景数据块。
有关多重背景数据块的用法和使用注意事项请参看《怎样使用多重背景数据块》。
★基于UDT的数据块为全局变量,提供一个固定格式的数据结构,便于用户使用。
西门子博图中带有背景数据块的基本指令不同实例的区别和应用
西门子博图中带有背景数据块的基本指令不同实例的区别和应
用
葛东霞
【期刊名称】《机电信息》
【年(卷),期】2023()1
【摘要】在西门子博图的PLC编程软件中,带有背景数据块的基本指令有单个实例、多重实例、参数实例三种背景数据块应用形式。
现介绍了三种形式的区别,希望能
够帮助大家掌握正确的应用方法。
【总页数】4页(P15-18)
【作者】葛东霞
【作者单位】济南工程职业技术学院
【正文语种】中文
【中图分类】TP29
【相关文献】
1.西门子S7-200/1200PLC时钟指令的应用实例
2.基于西门子SCOUT的FB数据块的编写与应用
3.西门子S7-200高速计数器指令在轴承选别机的应用实例
4.西
门子S7-200 PLC 脉冲输出MAP指令库控制步进电机的应用实例5.西门子系统参数R与(α)指令使用经验及应用实例
因版权原因,仅展示原文概要,查看原文内容请购买。
淘宝多重背景
<!--"重复即刻多层添加"-->
<div style="height:990px;position:relative;width:1920px;"><div class="quanpingaaa"><div style="background-image:url(图片链接);background-repeat:no-repeat;background-attachment:fixed;background-position:center 50%;float:left;display:block;"><a href="产品链接" style="height:990px;float:left;display:block;width:1920px;" target="_blank" data-spm-wangpu-module-id="5003-5088801789" data-spm-anchor-id="a1z10.1.w5003-5088801789.1"></a></div></div></div>
<!--"重复即刻多层添加"-->
<div style="height:990px;position:relative;width:1920px;"><div class="quanpingaaa"><div style="background-image:url(图片链接);background-repeat:no-repeat;background-attachment:fixed;background-position:center 50%;float:left;display:block;"><a href="产品链接" style="height:990px;float:left;display:block;width:1920px;" target="_blank" data-spm-wangpu-module-id="5003-5088801789" data-spm-anchor-id="a1z10.1.w5003-5088801789.2"></a></div></div></div>
多重背景数据块使用
多重数据块是数据块的一种特殊形式,如在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使用方法前两次文章和大家讲解了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正反转块全部同时启动电机正转)它们之间相互互不影响,可以同时启动,同时停止,同时反转。
西门子功能块的调用与多重背景数据模型
10
I 0.1 I 0.2 Q8.0
功能FC10
输入 输入 输出
...
On_1 On_2 Off
BOOL BOOL BOOL
... A #On_1 A #On_2 = #Off ...
基本数据类型传送机理
基本类型实际参数位于于:
位存储地址区域 过程映像 调用的局部堆栈
IB0 1 0 0 1 0 0 1 0 ...
▪ 在调用期间进行数据类型检查 ▪ 例外情况:POINTER,ANY 调用接口与编程语言无关 ▪ PLC编程语言可以混合使用
地址 0.0 0.1 2.0 2.0 8.0
10.0 ... ...
声明 输入 输入 输入
输出 输出
名称 Start Stop Speed
Motor_on Setpoint
类型 BOOL BOOL INT
块调用与多重背景模型
用于结构化编程的块
整个任务的 模块化:
单个任务在各自块中 予以解决
参数分配法使得 使用更加灵活
• 示例:钻孔循环程序的钻孔深 度为可分配参数
块的可再利用性能:
块可以按需要随时 加以调用 限制因素:
• 不允许访问 全局地址空间
• 只能通过参数列表 进行通信
OB 1
FB1 电机1
FB2 阀
OB 1
. .
CALL FB1, DB2
Start
:=I 0.0
Stop
:=I 0.1
Motor_on :=Q12.0
Speed :=QW14
.
.
FB10 控制器
FC 5 限制 阀
... SFC
复制
FB 1
地址 0.0 0.1 2.0 4.0 6.0 0.0
STEP 7中FB生成多重背景数据块
*************************************************************************************
************************************************************************************* 以下详细讲解西门子多重背景数据块的使用。
程序的结构。 通过工具栏中的第二个按钮或者“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
西门子博图计数器指令说明
计数器操作
计数器指令
1 对于
LAD
和 FBD :从指令名称下的下拉列表中选择计数值数据类型。
2 STEP 7 会在插入指令时自动创建 DB 。
3 在 SCL 示例中,“IEC_Counter_0_DB ”是背景 DB 的名称。
参数的数据类型
1计数值的数值范围取决于所选的数据类型。
如果计数值是无符号整型数,则可以减计数到零或加计数到范围限值。
如果计数值是有符号整数,则可以减计数到负整数限值或加计数到正整数限值。
用户程序中可以使用的计数器数仅受CPU 存储器容量限制。
计数器占用以下存储器空间:
•对于 SInt 或 USInt 数据类型,计数器指令占用3 个字节。
•对于Int 或 UInt 数据类型,计数器指令占用6 个字节。
•对于 DInt 或 UDInt 数据类型,计数器指令占用12 个字节。
这些指令使用软件计数器,软件计数器的最大计数速率受其所在的OB 的执行速率限制。
指令所在的OB 的执行频率必须足够高,以检测 CU 或 CD 输入的所有跳变。
要了解更
计数器的运行。
多重背景数据块的使用(图)
先建立一个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 在 S7-SCL 中如何调试多重背景
介绍: 在 S7-SCL 中,可以像在 STEP 7 LAD/STL/FBD 编辑器一样编辑多重背景。
可以在如下条目中查找到关 于断点的详细描述: "How can you test a STEP 7 program with breakpoints?"在条目 ID: 21336333 过程描述见下表: 编 步骤 号1 通过 S7-SCL 菜单命令 "Tools > Settings..." 打开 "Settings" 对话框,并选择 "Compiler" 页面。
激活 选项 "Create Debug Info" 并确认。
2 通过 "Test > Operation > Test operation" 操作,改变 CPU 模式至测试模式 3 保存并编译 S7-SCL 程序,并下载到 CPU 中。
4 把光标移动至相应的程序行,并执行 "Test > Set breakpoint",来为多重背景设置断点。
在 S7-SCL 指令临近位置,断点以一个彩色的小圆圈显示。
5 通过 "Test > Breakpoints active" 切换至测试模式 6 S7-SCL 编辑器窗口将被分割为两部分,并且程序将运行到下一个断点。
如果程序停止在块调用的行(多重背景),则选择 "Test > Execute call"。
图 01 在测试模式下,低等级的块被打开并被处理。
在处理后,程序返回调用位置。
。
300背景数据块
1:通常情况是这样的,300/400的CPU中有2个DB块寄存器,背景数据块用DB2寄存器,也就是DI寄存器。
共享数据块用DB1寄存器
任意数据块都可以以OPN DI或者DB的形式打开。
当一个程序中需要同时打开2个数据块时,就会用到OPN DI
打开DI寄存器后,比如OPN DI6后,DB2寄存器值就是6。
L DIW2这样的语句,就是相当于
L DI[DB2寄存器].DBW2
打开DB寄存器后,比如OPN DB7后,DB1寄存器值就是7。
L DBW2这样的语句,就是相当于
L DB[DB1寄存器].DBW2
程序中,打开数据块,一般是为了方便间接寻址。
OPN DI6
OPN DB7
L DIW0
T DBW0
OPN DB6
OPN DI7
L DBW2
T DIW2
你上面的程序就相当于
L DB6.DBW0
T DB7.DBW0
L DB7.DBW2
T DB6.DBW2
2.没有为什么,根据需要任意使用。
3.背景数据块,为FB专用,在 CALL FBx,DBx
时CPU内部也自动执行一次OPN DIx的过程,在FB内部执行程序时,是结合AR2寄存器和DB2寄存器,来对背景数据块内容进行寻址的,比如DIW[AR2,P#2.0]
4.建议百度下,S7-300/400的间接寻址,你需要指针编程方面的基础。
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搜索变量和建立多重背景数据块
做这一行的应该都知道s7-200是小型PLC,只是做做小项目涉及到的数据变量不多所以一般都没有用交叉数据,但是用S7-300/400做项目的时候可能有成千上万个变量,有这么的组织块我怎么知道我所要查找得变量在那里呢?这个时候我们怎么去搜索这些变量呢?那么这个时候用数据交叉表来检索我要查得数据无疑会给我们带来无比的方便,具体在simatic软件操作方法小弟用图片的形式展现给大家:
上图就把你所选择站点的全部变量就搜索出来了,并且标识了该数据在那个块使用,所以使用交叉数据表就给我们在查询变量的带来很大的方便。
以上就是小弟分享的simatic中数据交叉表的使用,虽然能力有限,但用心在做;
希望大家多多关注”佛山自动化“在百度贴吧里!
谢谢!
西门子s7-300 UDT与多层背景数据块
UDT和多层数据背景块在大型的项目中使用会给我们在编写程序的时候减少很
多麻烦,并且可以让我们的程序过程和步骤更加清晰;希望大家能够参和我讨论!让我们共同进步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
先建立一个FB10。
完成内容X*Y=Z
定义形式参数
IN:X,Y
OUT:Z
保存
然后在建立FB20,形式参数STAT里定义
NAME:MUL
Data Type:FB10
程序中写以反复的写call MUL。
保存
OB1中写CALL FB20,DB10
DB10为多重背景数据块
注意一点,多重背景调用等同于FC的调用,call MUL下的参数填写一定不能空着,必须有实际地址,否则用DB10的数据程序会混乱。
以下详细讲解西门子多重背景数据块的使用。
1、在SIMATIC Manager 中,打开你希望生成多重背景的FB。
在静态变量定义部分,输入多重背景的名字,数据类型为FB 或SFB。
图1
2、在程序中调用多重背景,可以在多重背景中的目录中选择托拽它到NETWORK 中,也可以用CALL 指令调用它。
图2
在STEP 7 V5.4 SP2 中请注意:
如果在LAD/FBD编辑器的目录视图中多重背景未被列出,推荐在静态变量声明中先插入一个功能块,然后再删除它。
这样多重背景就再次可以被选择。
3、现在设置程序块的输入和输出并保存。
就可以在程序(例如OB1)中使用多重背景来调用FB。
创建一个背景数据块以供监控。
注意:
当生成多重背景时,如其在FB 中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。
如果不遵从这个顺序,程序中将会出现不一致的情况,这种不一致的情况也有可能在修改多重背景后出现。
4、一旦修改过了多重背景,并打开调用它的功能块。
当功能块被打开时,会出现一个消息显示在FB 接口声明中有一个UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。
确认此信息,修改过的背景调用在LAD/STL/FBD 编辑器中将会以亮红色显示。
为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。
图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程序的结构。
通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。
在编译后,STEP 7程序一致性将统一。
图5
当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图6)。
也可以改变此设置:
图6
一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景的属性只可以显示,除非按照一个冗长的过程来修改它。
摘自。