当前位置: 首页 > web >正文

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一个起始地址,后面连续的地址就全都相应的配置出来,这样配置起来方便,规范;

http://www.xdnf.cn/news/15099.html

相关文章:

  • 服务器中source: not found解决方法
  • AP中的Execution Manager“非报告进程”和“伴随进程”概念解析
  • Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证
  • RAG实战之dify源码文件解析-pdf文件解析流程
  • QT6 源(158)模型视图架构里的文件系统模型 QFileSystemModel 篇一:属性,成员函数,与信号函数
  • 在 macOS 上安装与自定义 Oh My Zsh:让终端美观又高效 [特殊字符]
  • Microsoft AZ-305 Exam Question
  • Git常用指令
  • Python-文件操作
  • 如何将 AWS EBS 卷从 gp2 批量迁移到 gp3:完整指南
  • RabbitMQ 高级特性之事务
  • FPGA加速HMI实时渲染:复杂图形处理的并行计算方案
  • 【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法
  • 5.注册中心横向对比:Nacos vs Eureka vs Consul —— 深度解析与科学选型指南
  • 字体 Unicode 区块字符展示 PDF 生成器
  • MySQL 09 普通索引和唯一索引
  • 5N70-ASEMI电源管理领域专用5N70
  • 前端业务监控系统,异常上报业务,异常队列收集,异常捕获
  • 【Unity】MiniGame编辑器小游戏(十)连连看【Link】
  • C#基础篇(11)泛型类与泛型方法详解
  • UI前端与数字孪生结合实践探索:智慧物流的仓储优化与管理系统
  • 大数据在UI前端的应用深化:用户行为模式的挖掘与预测性分析
  • 原型与原型链到底是什么?
  • Linux驱动学习day20(pinctrl子系统驱动大全)
  • 自动驾驶决策与规划
  • 【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
  • 【PDF提取内容改名】批量提取pdf多个指定区域内容到excel表格的操作步骤和方法
  • 制作MikTex本地包可用于离线安装包
  • doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法
  • 冷冻电镜重构的GPU加速破局:从Relion到CryoSPARC的并行重构算法