S7+多重背景数据块

合集下载

西门子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的接口参数数量自动计算得到,采用默认值就可以了。

西门子300创建fb

西门子300创建fb

西门子S7-300 中FB功能块的使用方法:1.创建功能块FB1准备完成如下功能:将“整型”变量转换成“实型”变量2.打开功能块FB13.在功能块FB1中添加入口参数、出口参数、静态变量入口参数=IN0 ---> 整型(INT)出口参数=OUT1 ---> 实型(REAL)静态变量=STAT2 ---> 整型(INT)局部变量=TEMP3 ---> 长整型(DINT)4.创建背景数据块DB25.打开DB2背景数据块,可以看到系统默认建立了三个数据IN0 ---> 入口参数(整型)OUT1 ---> 出口参数(实型)STAT2---> 静态变量(整型)6.打开FB1功能块,编写如下代码,实现将“整型”变量转换成“实型”变量同时再编写一段静态变量自加1代码7.打开OB1主程序,添加FB1功能块如何确定程序参数类型的块编号并传送给FC ?介绍使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER)的编号。

例1 :FB 块FB1 变量声明中定义了“Timer”类型的变量“Time_1”,在FB2 中调用FB1,将定时器“T5”传递给变量“Time_1”。

如图01 所示程序代码中数值5 表示“T5”。

图. 01例2 FCFC1 变量声明中定义了“Timer”类型的变量“Time_1”,在FC2 中调用FC1,将定时器“T8”传递给变量“Time_1”。

如图02 所示程序代码中数值8 表示“T8”。

图. 02在使用多重实例时,需要在图01 所示程序中增加以下代码:TAR2 //多重实例偏移地址LAR1 P##Time_1+AR1 //多重实例偏移地址与当前地址相加L W[AR1,P#0.0]T MW00“BLOCK_DB”类型参数在调用FC 时不可以直接传送给FC 。

如果在调用功能时试图使用此参数类型,将产生如下的错误消息:“非法的参数传输<参数名>”“BLOCK_DB”类型参数仅在FB 被调用(从一个FB 或FC 中)时可被传送。

背景数据块解析

背景数据块解析
现有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必须已经存在。

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!BFH当功能块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所示的符号表。

(4)规划程序结构。

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

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

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

(5)编辑功能(FC)。

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

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

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

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

西门子S7-300高级编程培训教材,内部教材_6、块调用和多重背景模型

西门子S7-300高级编程培训教材,内部教材_6、块调用和多重背景模型

系统功能块(SFB) - FB(具有存储空间),存储在CPU的操作系统中并可由用户调用
系统功能(SFC)
- FB(无存储空间),存储在CPU的操作系统中并可由用户调用
系统数据块(SDB) - 用于配置数据和参数的数据块
SIMATIC S7
Siemens AG 2001. All rights reserved.
编程人员将用于进行数据处理或过程控制的程序指令,存储在这些块(OB, FB和FC)中。 数据块(DB)中,程序员可以将程序执行期间产生的数据保存起来,以备后 来使用。
用户块是在编程设备中创建的,并从编程设备中下载到CPU中去。 • 系统块:系统块包括系统功能块(SFB),系统功能(SFC),以及系统数 据块(SDB) 。
功能的属性
…………......................................................................................................... 5
基本数据类型传送机理
…..................................................................... 6
OOBB 11
FFBB11 电电电电机机机机1111
FFBB22 阀阀 阀阀
FFBB1100 控控制制器器 控控制制器器
FFCC 55 限限制制 阀阀
.. .. .. SSFFCC
复复制制
OOBB 11
.. ..
CCAALLLL FFBB11,,DDBB22 SSttaarrtt ::==II00..00 SSttoopp ::==II00..11 MMoottoorr__oonn ::==QQ1122..00 SSppeeeedd ::==QQWW1144

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,均赋不同的定时器或计数器号。

西门子高级编程全集06_块调用与多重背景模型29页PPT

西门子高级编程全集06_块调用与多重背景模型29页PPT

西门子高级编程全集06_块调用与多 重背景模型
1、纪律是管理关系的形式。——阿法 纳西耶 夫 2、改革如果不讲纪律,就难以成功。
3、道德行为训练,不是通过语言影响 ,而是 让儿童 练习良 好道德 行为, 克服懒 惰、轻 率、不 守纪律 、颓废 等不良 行为。 4、学校没有纪律便如磨房里没有水。 ——夸 美纽斯
5、教导儿童服从真理、服从集体,养 成儿童 自觉的 纪律性 ,这是 儿童道 德教育 最重要 的部分 。—— 陈鹤琴
31、只有永远躺在泥坑里的人,才不会再掉进坑里。——黑格尔 32、希望的灯一旦熄灭,生活刹那间变成了一片黑暗。——普列姆昌德 3若 35、学到很多东西的诀窍,就是一下子不要学很多。——洛克

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正反转块全部同时启动电机正转)它们之间相互互不影响,可以同时启动,同时停止,同时反转。

S7-200PLC教程第6章

S7-200PLC教程第6章

6.3 共享数据块与复杂数据类型
6.3.1 共享数据块的生成与使用 生成数据块 数据块的两种显示方式 6.3.2 复杂数据类型的生成与使用 1.基本数据类型 基本数据类型包括位(Bool),字节(Byte)、字(Word)、双字(Dword)、整数 (INT)、双整数(DINT)和浮点数(Float,或称实数Real)等。 2.复合数据类型 日期和时间用8个字节的BCD码来存储。 8 BCD 字符串(STRING)由最多254个字符和2字节的头部组成。 3.数组 数组(ARRAY)由同一类型的数据组合而成。ARRAY[1..2,1..3]是一个二维数组,共有6 个整数元素。最多为6维。 数组元素”TANK”.PRESS[2,1]:TANK是数据块的符号名,PRESS是数组的名称。 数据视图方式的数组元素及初值,用数组定义数据块的大小。 4.结构 结构(STRUCT)是不同类型的数据的组合。可以用基本数据类型、复杂数据类型和UDT 作为结构中的元素,可以嵌套8层。 数据块TANK内结构STACK的元素AMOUNT表示为”TANK”.STACK.AMOUNT。
5.功能块(FB) 功能块是用户编写的有自己的存储区(背景数据块)的块,每次调用功能 块时需要提供各种类型的数据给功能块,功能块也要返回变量给调用它的块。 这些数据以静态变量(STAT)的形式存放在指定的背景数据块(DI)中,临时变量 存储在局域数据堆栈中。功能块执行完后,背景数据块中的数据不会丢失,但 是不会保存局部数据堆栈中的数据。 FB和FC的共性: 均为用户编写的子程序,局部数据变量均有IN、OUT、IN_OUT和TEMP。 FC的RET_VAL属于OUT变量。临时变量TEMP存储在局部数据堆栈中。调 用功能和功能块时要为形参(形式参数)指定实参(实际参数),执行FC 和FB时用实参代替形参。 FB和FC的区别: FB比FC多了静态变量STAT和背景数据块DI,后者用来保存TEMP之外的 变量。 可以在FB的变量声明表中给形参赋初值。 调用FB或SFB时,必须指定背景数据块。在编译FB或SFB时自动生成背 景数据块中的数据。一个功能块可以有多个背景数据块,用于不同的被控对 象。

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

S7-300多重背景调用实例

S7-300多重背景调用实例

多重背景数据块如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。

对于非常小的FB,它的背景数据块经常由很少的几个字组成,则会浪费大量没有使用的背景数据块空间。

当频繁调用和指定背景数据块给这些小的FB时,程序会变得非常不清晰,或者DB块的数量会达到CPC所支持的最大数量。

由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。

但是,这种合并必须在一个FB中通过编程完成。

多重背景调用等同于FC的调用,在多重背景下调用的参数填写一定不能空着,必须有实际地址,否则用DB10的数据程序会混乱具体步骤:1.先建立一个FB1。

符号名:三数相加。

完成内容a*b*c=outcome定义形式参数IN : a, b, cOUT: outcometemp:temp_out谓试(D〕观圉(VJ选项9)窗口側m(H]iO n- I t 金苛电雪I !《刘|怕|面| E I卄卄O回L>』珅内容:T不憤X.接口2.在SIMATIC Manager中,打开你希望生成多重背景的FB2。

在静态变量STAT定义部分,输入多重背景的名字,数据类型为FB,选择后要注意改成FB1。

然后将左侧多重背景的数据模块拖入编程框内。

D 4診R冒el o-二Jx 0rf! ! ins吩. ‘ "q \企厂HKi19卄-w-^o囹匸-Q文件(F)集辑①猜入(D PLC谓试(D)视图(V)选项(0) §D(W)繆助(H)带擁f?序废s-Ga位邂s§ S-G J比咬器 a -±sl转矣器用土!|计数詰可® DB调用i£]财S {±11整孜函数a- iil浮点数生数田◎移动s sa稈序拎制国国移位/循环S {±2|状姦位S (fi]走时器S国宁逻辑亦© FB块 a -ia FC块0 qj SFB 块[.曰N01.ADD1 ] QN0LADD2/a DO] DB涸用由⑥跳转亩回整数囱数 a a浮点数国数由0移动由囱程序按制a⑥移位循珏审回状态位田⑥走时器± jd字逻辑E £H FB 块由回FC块3 IS SFB 块苗XH SFC块e M多重背晏曰NO1.ADD1 i L 口N01 ADD2 t-W库Q-OUT O-IN OUTAE3 STATE Onoi. (EO noi-r=i Tirim.ADD1.ADD20▼名称OUTIN_OUTSTATIEMF*NO1_ADD1#N01_ADD]EH EHO10-20-a outcone程序段2:标题:程序段2:标题:-mDBL.DBW6-DB1.DBW2・DB1.DBW4-WI01_ADD2#N01_ADD2EN ENOa outcoane -024.在主程序0B1里调用FB25.如果需要可以在主程序里用mov 指令给相应的变量例如 DB1.DBW2等赋值,或直接在DB2数据库里改变当前值。

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和多层数据背景块在大型的项目中使用会给我们在编写程序的时候减少很
多麻烦,并且可以让我们的程序过程和步骤更加清晰;希望大家能够参和我讨论!让我们共同进步。

s7-300,400间接寻址

s7-300,400间接寻址

字及双字的寻址,32位的地址指针可以使用一个双字表示。
第0位-第2位作为寻址操作的位地址。
第3位-第18位作为寻址操作的字节地址。
第19位-第31位没有定义。例如:I1.1用如下指针表示
I [0……01001]
存储器32位指针仅用于内部区域寻址。
寻址格式表示这: 地址存储器标示符 [32位地址指针]
LAR1/2 P#M20.0//装载地址指针P#M20.0到AR1或AR2中
L B [AR1/2, P#10.0]
装载指令 访问宽度 地址寄存器 地址偏移常量
000表示没有地址区,例如P#12.0
001表示输入地址区,例如P#I12.0
//16位地址指针不能访问到位。
opn db [mw20] // 打开DB块
打开指令 区域标识符 地址指针
如果MW20=2就是打开数据块DB2
CU C [MW20] //打开向上计数器[MW20]为指针
T MD 24 //
L 320 //320转换指针为P#40.0(320/8=40.0)
T MD 28 //并装载到MD28中。
L DB [MD20]//装载Dபைடு நூலகம்1.DBW4
L DB [MD24]//装载DB1.DBW20
如果MD10=48,表示的地址指针为6.0(48/8=6)
//32位内部区域指针可用常数表示,表示为P#字节.位。如:
常数“P#10.3”指向第10个字节的第3个位。
若把一个32位整形数转换为字节指针常数,从上述指针格式
可以看出,应该要把该数左移3位(或是X8)即可。如:
L L#100 //装入32位整形100
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在SIEMENS S7-300/400系列PLC中有多种程序块,如下图(在管理器右边的空白区域点击右键),主要有:组织块(OB),功能块(FB),功能(FC),数据块(DB)及系统功能(SFC)和系统功能块(SFB)等。

注:快捷菜单中的其它两项:数据类型和变量表。

数据类型(UDT)用于指定程序中数据元素的大小与格式;变量表(VAT)用来在程序调试和运行时修改和监视变量的内容(在地址栏中输入地址后,符号栏中会自动显示在符号表中定义的符号)。

这几种程序块的功能简要说明如下:
说明:
调用程序块:OB,FB,FC(可以调用除OB块外的其它程序块);
被调用程序块:FB,FC,SFB,SFC。

1、组织块OB
OB由系统自动调用,并执行用户在OB块中编写的程序,所以OB的基本作用是调用用户程序。

在OB块中编写程序的最大容量,S7-300是16KB,S7-400是64KB。

除主程序循环OB1外,其它OB均是由事件触发的中断。

2、函数FC
函数FC有两个作用:(1)作为子程序用;(2)作为函数用,函数中通常带形参。

函数中程序的最大容量,S7-300是16KB,S7-400是64KB。

FC的形参通常也称为接口区,参数类型分为输入参数,输出参数,输入/输出参数和临时数据区。

在编写函数FC的输出参数时,应避免没有直接输出(否则,可能输出一个随机值,影响程序的判断)。

可以在函数的开始,将字输出参数清0,位输出参数复位。

3、函数块FB
FB与FC相比,FB每次调用都必须分配一个背景数据块,用来存储接口数据区(TEMP类型除外)和运算的中间数据。

其它程序可以直接使用背景数据区中的数据。

FB中程序的最大容量,S7-300是16KB,S7-400是64KB。

FB的接口区比FC多了一个静态数据区(STAT),用来存储中间变量。

程序调用FB时,形参不像FC那样必须赋值,可以通过背景数据块直接赋值。

由于FB带有背景数据块,输出参数不会输出随机值,可以不在FB中编写初始化程序。

4、数据块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的数据块为全局变量,提供一个固定格式的数据结构,便于用户使用。

5、系统函数(SFC)和系统函数块(SFB)
SFC和SFB集成在CPU中,相当于系统提供的可供用户程序调用的FC或FB,实现与CPU 系统相关的一些功能,如读写CPU时钟等功能。

调用SFB需要背景数据块。

多重数据块是数据块的一种特殊形式,如在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 <nr>,确认后,再把<nr>改为1,即功能块FB1。

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

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

因为控制两台电机,所以需要在STAT中定义两个这样的变量。

结果如下:
经过以上步骤,FB的背景数据块DB10中就完全包含了1#和2#电机所需的数据,如下图,其中地址2.0~8.0是第一台电机的接口区控制参数,10.0~16.0是第二台电机接口区控制参数。

这时,在FB10的指令列表中“多重实例”中就会出现已经添加的两个局部背景,如下图。

在程序中就可以分别调用这两个局部背景控制1号和2号电机了。

程序如下:
这样,就可以在OB1中通过调用OB10就可以分别控制1#和2#电机了。

如下图:。

相关文档
最新文档