一、数据块
数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的。
数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的。
数据块分共享数据块、背景数据块、用户自定义数据块,下面分别介绍。
1.共享数据块(全局数据块)
其用于存储全局数据,所有逻辑块(OB、FC、FB)都可以访问共享数据块中的数据。
2.背景数据块(私有存储区)
其用做功能块(FB)的“存储器”。FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是编辑区生成的。
3.用户自定义数据块
其是以UDT为模板生成的数据块。创建用户定义数据块之前,必须先创建一个用户自定义的数据类型,如UDT1,并在LAD/STL/FBD S7程序编辑器内定义。
自定义数据类型UDT1的创建 可以参照之前的学习笔记:西门子PLC学习笔记五-(编程语言、数据类型)进行学习
4.数据块的创建
数据块的创建可以参考下图:
二、数据块的访问
用户程序可以以位、字节、字或双字操作访问数据块中的数据,可以使用符号或绝对地址访问。
在访问数据块时必须指明数据块的编号、数据类型与位置。如访问了不存在的数据单元或者数据块,同时没有编写错误处理OB块,CPU将进入STOP模式。
1.寻址数据块
2.传统方式访问数据块
传统方式是:先打开数据块,然后在访问。下例为STL访问数据块代码:
OPN DB1 //打开数据块DB1,作为共享数据块
L DBW2 //将DB1的数据字DBW2装入累加器1的低字中
T MW0 //将累加器低字中的内容传送到存储字MW0
T DBW4 //将累加器1低字中的内容传送到DB1的数据字DBW4
OPN DB2 //打开数据块DB2,作为共享数据块,同时关闭数据块DB1
L DB10 //装入共享数据块DB2的长度
L MD10 //将MD10装入累加器
<D //比较数据块DB2的长度是否足够长
JC ERRO //如果长度小于存储双字MD10中的值,则跳转到ERRO
3.直接访问数据块
直接访问数据块是:直接给出数据块的编号和数据在数据块中的地址。可以使用绝对地址,也可以使用符号地址。如下例:
L DB1.DBW2 //打开数据块DB1,并装入地址为2字数据单元
T DB1.DBW //将数据传送到数据块DB1的数据字单元DBW4
//----------- 使用符号地址 ------------
L "DB_Symbol".Speed //打开符号名为"DB_Symbol"的数据块
//并装入名为"Speed"的数据单元
---------------------
作者:风水月
来源:CSDN
原文:https://blog.csdn.net/fengshuiyue/article/details/42705319
(转载)西门子PLC学习笔记十五-(数据块及数据访问方式)的更多相关文章
-
python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
-
西门子PLC学习笔记二-(工作记录)
今天师傅给讲了讲做自己主动化控制的总体的思路,特进行一下记录,做个备忘. 1.需求分析 本次的项目是对楼宇循环供水的控制,整个项目须要完毕压力.压差.温度等的获取及显示.同一时候完毕电机的控制. 2. ...
-
(C/C++学习笔记) 十五. 构造数据类型
十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...
-
西门子PLC学习笔记六-(Step7指令简单介绍)
1.指令操作数 指令操作数由操作标示符和參数组成. 操作标识符由主标识符和辅标识符组成. 主标识符有:I(输入过程影像寄存器).Q(输出过程映像寄存器).M(位寄存器).PI(外部输入寄存器).PQ( ...
-
MySQL学习笔记十五:优化(2)
一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin ...
-
Java基础学习笔记十五 集合、迭代器、泛型
Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都 ...
-
angular学习笔记(十五)-module里的&#39;服务&#39;
本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...
-
MYSQL进阶学习笔记十五:MySQL 的账号权限赋予!(视频序号:进阶_33,34)
知识点十六:MySQL的账号权限赋予(33) 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执 ...
-
数据结构和算法学习笔记十五:多路查找树(B树)
一.概念 1.多路查找树(multi-way search tree):所谓多路,即是指每个节点中存储的数据可以是多个,每个节点的子节点数也可以多于两个.使用多路查找树的意义在于有效降低树的深度,从而 ...
随机推荐
-
c#如何判断webbrowser已经加载完毕
最近有个小程序需要采集网页源代码,但有的网页中JS脚本又会生成额外的代码,比如http://www.cnblogs.com/lidabo/p/4169396.html 红框部分便是另外加载的代码. 此 ...
-
JS图片上传预览
HTML部分: <img id="avatar" class="editable img-responsive" alt="头像" s ...
-
替换文件最后一行中的所有e 为 E
#root@athena5plus:~# cat b northwest NW Charles Main 3.0 .98 3 ...
-
Android 贝塞尔曲线 折线图
1.贝塞尔曲线:http://baike.baidu.com/view/60154.htm,在这里理解什么是贝塞尔曲线 2.直接上图: 3.100多行代码就可以画出贝塞尔曲线,直接上代码 packag ...
-
JFS 文件系统概述及布局分析
JFS 文件系统概述及布局分析 日志文件系统如何缩短系统重启时间 如果发生系统崩溃,JFS 提供了快速文件系统重启.通过使用数据库日志技术,JFS 能在几秒或几分钟之内把文件系统恢复到一致状态,而非日 ...
-
C3P0和DBCP的区别
C3P0和DBCP的区别 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. ...
-
Unity 5.x动态加载光照信息(所有坑已踩)
能搜到这的应该是被新的烘焙系统坑了少时间,4.x到5.x美术必须重新烘焙,关于美术的没什么说的,只有---重新烘焙! 新的烘焙系统,为了兼容5.x的多场景编辑功能,将烘焙信息从mesh全部挪到了一个中 ...
-
gulp-px2rem-plugin 插件的一个小bug
最近在使用这个插件的过程中发现一个bug: 不支持 含有小数的形式. 查看源码后,修改了下其中的正则,使其支持小数形式(66.66px..6px ). 作者的源码最近一次更新都在两年前,所以就简单的记 ...
-
unity3d-解密加密数据
利用RijndaelManaged加密解码.需要导入命名空间 using System.Security.Cryptography; 一个很简单的例子,最终的结果 解密和加密类 public clas ...
-
linux中截取文件的特定字节(去掉utf-8 bom头)
事出有因,之所以要截取特定字节,是为了给utf-8编码的文件去掉bom头. bom头好去啊,notepad++文本编辑器中就有这个功能啊.可是,问题所在是要编辑的文件太大了,300MB,小电脑卡shi ...