S7-1500——(一)从入门到精通1、基于TIA 博途解析PLC程序结构(二)
基于TIA 博途解析PLC程序结构
- 三,DB数据块
- 1.DB概述
- 2,数据类型概览
- 3,DB的起始值、快照值和监视值
- 4,DB的在线操作
- 5,DB的优化访问
- 四,FC/FB 函数与函数块
- 1,操作数的类型
- 2,结构化编程
- 3,参数的定义
- 4,FC的结构化编程
- 5,FB的结构化编程
- 6,参数的数据类型
- 7,使用Variant参数数据类型
- 8,代码块的优化访问
- 9,在线监视时块的调用路径
- 10,块修改的处理
三,DB数据块
1.DB概述
分类:根据存储变量不同分为全局数据块和背景数据块
全局数据块:保存程序变量,可被所有代码块访问,存储在CPU工作存储器
→CPU 程序的工作存储器
→HMI的可视化数据
→生产过程的统计数据…背景数据块:保存函数块的参数及静态变量
优势:DB的规划、管理能力要优于M区,在复杂项目中优势明显,单个最大容量可达16MB
添加全局DB:
点击添加新块,定义块的名称、类型和编号
打开数据块并声明数据块变量
定义块的结构(数据块变量的数量和顺序)
数据块变量的声明包括:符号名称、数据类型、起始值,属性(保持性…)
2,数据类型概览
组成:由多个基本数据类型或其他复杂数据类型的元素组合而成
基本数据类型:
基本数据类型分类 | 类型 | 数据类型 |
---|---|---|
二进制数 | BOOL | |
位序列 | BYTE; WORD; DWORD; LWORD | |
整数 | SINT; USINT; INT; UINT; DINT; UDINT; LINT; ULINT | |
浮点数 | REAL; LREAL | |
计时器 | S5TIME; TIME; LTIME | |
日期,日时钟 | DATE; TIME_OF_DAY; LTIME_OF_DAY | |
字符 | CHAR; WCHAR |
声明变量时,要根据所描述对象的主要特征以及取值范围,来选择数据类型
复杂数据类型:
复杂数据类型 | 类型 | 数据类型 |
---|---|---|
日期及日时钟 | DT(DATE_AND_TIME); DTL; LDT | |
字符串 | STRING; WSTRING | |
数组 | ARRAY [...] of <Datatype> | |
匿名结构 | STRUCT | |
用户定义数据类型 | PLC 数据类型 UDT(用户定义数据类型) |
复杂数据类型是由多个基本数据类型或其它复杂数据类型的元素组合而成,用来描述的属性更加复杂
复杂数据类型对于组织复杂数据十分有用,通过这种方式,编程人员可以生成满足具体任务要求的数据类型,将基本的逻辑上有关联的信息单元组成一个拥有自己名称的新单元:
数组是一系列相同元素的集合;
将数据构建成数组可以很方便的以变量索引的方式实现间接寻址;
PLC数据类型UDT
是一种用户自定义的复杂数据类型
PLC 数据类型可用作逻辑块的局部变量声明或全局变量表和数据块中全局变量声明的数据类型PLC 数据类型可用作模板,创建数据结构相同的全局数据块
组成UDT的元素可以是其它已声明的UDT,嵌套深度限制为 8级
特点:相当于命名的结构STRUCT
○ 继承STRUCT全部优点
○ 可重复使用
○ 提高程序可读性
○ 可配合ARRAY及其他UDT组合使用,体现结构化优势
○ UDT可以作为块调用的完整结构进行传送,减少参数数量
UDT相较于Struct的管理优势:
类似文件夹管理文件的方式
结构更新时UDT方式调整更方便
常规访问时两者差异不大
匿名结构Struct和UDT的使用
UDT与其它复杂数据类型的组合使用
UDT可作为数组元素类型
UDT成分可包含基本数据类型和复杂数据类型
UDT的创建及使用
创建方法:
展开PLC数据类型
双击"添加新数据类型"
将新创建的数据类型修改名称,并双击进入编辑
添加变量(操作类似编辑全局DB):可以添加基本数据类型,复杂数据类型,或嵌套其他类型的UDT
UDT在项目中的应用
UDT可以在代码块、数据块中再次使用,可作为参数、静态变量或临时变量,或作为PLC 变量;
UDT的使用:
先创建全局DB,然后按照UDT类型进行创建,选择刚创建的UDT
双击打开创建的DB块,刚才UDT创建的那些变量,这里呢全部显示出来啦;
这样创建DB以后,上图的DB600里面就不能对DB进行修改,这样可实现标准化的DB创建
若是普通的全局DB,再添加一个普通全局DB,打开创建变量,就可以使用已声明的数据类型来进行创建;点击折叠符号,可以将其展开,创建好的这些变量就出现啦;
还可以在普通DB中创建一个具有10个元素的数组,数据类型使之前创建的UDT(UDTCeShi2)
也可在程序块的局部变量中使用创建的UDT创建变量,就是说在临时变量中也可以使用UDT来创建变量:
在项目中,udt类型有项目的所有输入点和输出点,
他们在变量表中进行的使用,
我们事先可以把输入输出形成一定的规范,地址的顺序预先定义好,然后形成标准的UDT:
使用的时候,只要付给这个UDT一个起始地址,后面连续的地址就全都相应的配置出来,这样配置起来方便,规范;