网站首页 > 精选文章 正文
西门子PLC的存储区主要包括:装载存储器区、工作存储器区、保存存储区、系统存储区,其中工作存储区,主要存储用户程序代码及数据,数据规划及使用在项目开发中非常重要,特别是针对大型或涉及有复杂运算的项目,规划好会起到事半功倍的效果。
一、DB简介
1、DB分类
数据块DB(Data Block)分为全局DB(DB_Global)和背景DB(DB_Instance)。全局DB,在项目中所有代码块均可访问;背景DB,主要存储FB运行时的参数及静态变量,每个FB均会匹配一个对应的DB;
全局DB应用功能,跟CPU中的M区类似,但DB的规划、管理能要要优于M区,特别是在一些复杂运算的场合
2、创建DB
创建DB数据,主要需要设置变量名称、数据类型、起始值、设置保持特性等进行配置,后续会有所讲解。
二、DB数据类型说明
DB中可配置的数据类型,包括基本数据类型及复制数据类型
1、基本数据类型如下图:
2、复制数据类型如下图:
显然,复杂数据类型占用的存储空间更大,复杂数据类型是由多个基本数据类型货其它复杂数据类型组成。顾名思义,复杂数据类型,主要用于组织复杂数据时使用,可根据程序运算或显示需求组合定义。
3、下图是日期及日时钟类型和字符串类型
4、下图DB的构建了数组数据类型。数组是一系列相同元素的集合,将数据构建成数组,可以很方便采用变量索引的方式实现间接寻址。数组可以是一维数组,也可以是多维数组。
5、下图是UDT及STRUCT数据类型
UDT为用户自定义复杂数据类型,相当于命名的结构(STRUCT),声明了一个结构模板,可以重复多次使用。同时,组成UDT的元素可以是其他已申明的UDT,嵌套深度最高为8级;可以配合数组ARRAY及其它UDT组合使用,提现结构化优势;并UDT可以作为块调用的完整结构进行传送,极大减少参数数量。
操作添加UDT入下图
UDT可在代码块、数据块中多次使用,可作为参数、静态变量、临时变量,也可作为PLC变量。同时可实现标准化的DB创建,可以快速构建数据库。
三、DB中起始值、监视值、快照值功能说明、实际操作
1、定义说明:
监视值:是CPU在运行时,该DB变量的当前值
起始值:DB在初始化后会恢复成的值,可预先设定,也可通过保持特性的设置,来达到CPU重启及其它情况DB初始化后,DB是否需要回到初始值或回到最后监视值。即选择不保持,每次重启或DB初始化,该DB的变量会回到初始值;而选择保持,DB初始化后则初始化后则回到最后的监视值。
快照值:当CPU在线时,可以通过快照功能操作,将当前DB的监视值(即变量当前值),录制到快照值中,然后也可将快照值写回到监视值中。该功能即是实现PLC在运行时,对DB当前数据进行备份。通过操作可以实现初始化后数据恢复到之前备份的监视值,也可恢复到初始值。
2、操作说明
注意带白点的操作快捷菜单,即是对所选的项目有效,具体操作可在TIA Portal中练习实践
比如PID调整,通过数据块快照,可以对P、I、D参数备份,也包括手自动、设定值这些备份。包括一些累积量的备份等
四、DB的访问优化
在DB的属性中,可以设置是否需要优化访问
二者区别
优化访问:可使用符号访问,也可使用绝对访问,数据变量有具体的固定地址;设置保持时,只能对整个DB进行设置;
不优化访问:只能使用符号访问;设置保持特性时,可分别对每个数据变量配置是否需要有保持特性;
DB优化原理如下图:
优化数块,将位宽较大的数据放在DB前面,位宽较小的数据放在DB后面,这样可以减少数据间间隙;同时BOOL量,采用字节存储,无需掩码机制访问,可提高运行效率。
下图是存储结构变量优化数据块,结构变量之间存有间隔分开,保持性数据存于单独区域内,可更有效实现整体访问。
以上只是一些优化的原理,我们平时在使用时只要了解其功能和如何使用,有些时候需要特定选择,如数据通讯,通常我们使用S5-1500PLC实现第三方模块通讯,如Modbus TCP时,我们选择的数组DB则不选择优化。
注意:对于优化DB,只能通过变量名来访问,可以输入变量起始符号,利用符号选择功能,快速选择变量。
猜你喜欢
- 2025-07-03 开源分享:DBCompare一款简单实用的数据库表结构对比工具
- 2025-07-03 数据库管理工具更新:DbVisualizer 23.2.5
- 2025-07-03 GoldenDB Replay智能回放工具,全真模拟、精准诊断!
- 2025-07-03 V社新作《Deadlock》现身SteamDB数据库:数百人在线游玩
- 2025-07-03 steamdb网址 steam打折游戏网站网址分享
- 2025-07-03 显示警报(DisplayAlerts)的打开和关闭
- 2025-07-03 查看MySQL所有数据库列表(查看mysql下所有数据库的语句是()?)
- 2025-07-03 从 SQLite 到 DuckDB:查询快 5 倍,存储减少 80%
- 2025-07-03 手把手教你在嵌入式设备中使用SQLite3
- 2025-07-03 PyMySQL 快速上手:用 Python 轻松玩转数据库
- 07-03CentOS7系统如何修改主机名(更改centos主机名)
- 07-03Ubuntu1804 及以上版本的 Coredump 相关设置
- 07-03Linux中如何修改ip地址?(linux系统怎么更改ip地址)
- 07-03Linux系统日常运维九大核心技能(linux运维都干什么)
- 07-03Linux 日志管理攻略:用 journalctl 揪出服务器安全隐患
- 07-03Linux下快速安装ollama和deepseek并使用web界面
- 07-03RockyLinux9.5下使用ollama搭建本地AI大模型DeepSeek
- 07-03Linux 下的 PM2 完整指南(linux /media)
- 最近发表
-
- CentOS7系统如何修改主机名(更改centos主机名)
- Ubuntu1804 及以上版本的 Coredump 相关设置
- Linux中如何修改ip地址?(linux系统怎么更改ip地址)
- Linux系统日常运维九大核心技能(linux运维都干什么)
- Linux 日志管理攻略:用 journalctl 揪出服务器安全隐患
- Linux下快速安装ollama和deepseek并使用web界面
- RockyLinux9.5下使用ollama搭建本地AI大模型DeepSeek
- Linux 下的 PM2 完整指南(linux /media)
- Rocky Linux 9常用命令备忘录(不定时更新)
- Rocky Linux 9 系统初始化与安全加固脚本
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)