西门子scl语言编程手册_西门子SCL编程PEEK指令讲解

单词“peek”在英语中表示“偷看,瞥一眼”,在计算机编程中表示“读取数据”。
在西门子SCL编程中,PEEK指令可以用来读取输入缓存区(I)、输出缓存区(Q)、位存储区(M)及数据块(DB)中的数据,常用作间接寻址。今天这篇文章,我们来学习下PEEK指令。

e4613bec92565051f1b8a9e2a33a5f6f.png

PEEK指令支持以位(Bit)、字节(Byte)、字(Word)及双字(Double Word)的形式进行操作,如果PEEK指令的后面不指定数据类型,则默认为对字节型数据进行操作。可以在【基本指令(Basic instructions)】-【移动操作(move operations)】-【读写内存(Read/Write memory)】中找到该指令,如下图:

1f83f71c07bbbd8ef9c63fda306d27e2.png

在FB/FC中添加PEEK指令并将其赋值给字节型变量temp_byte的代码如下图:

8c865b0079da7e7337ccca4ef8c47009.png

可以看到,PEEK指令有三个参数:area ,dbNumber及byteOffset,各参数的含义如下:
1、area:字节型数据(Byte),用来指定访问存储区的类型。16#81表示输入缓存区(I)、16#82表示输出缓存区(Q)、16#83表示位存储区(M)、16#84表示数据块(DB)、16#1表示外设输入(PI)。其中,16#84只能访问“标准的”数据块;16#1对外设的读取,只能在S7-1500系列PLC中使用。
2、dbNumber:双整型数据(DINT),用来指定数据块的编号,仅在访问数据块时使用;访问其它存储区时设置为0;
3、byteOffse:双整型数据(DINT),用来指定读取数据的地址偏移量;
举个例子:
假设我们要读取输入缓存区(I)的第9个字节到位存储区(M)的第20个字节,则可以使用如下的代码:

f1bf542febdf8c49bd60bf3c5783ff61.png

PEEK_BOOL指令来读取布尔型数据,其返回值是布尔型变量。从指令列表中添加PEEK_BOOL指令的初始状态如下:

640d60c8840c0fe4352911d989a6ab35.png

该指令有四个参数:

area,dbNumber,byteOffset和bitOffset。

前三个参数的含义与PEEK指令中介绍的相同,第四个参数bitOffset表示要读取的位的偏移,其取值范围为0~7。
举个例子,假设我们要读取M0.7的值,并将其赋值给Q0.0,则可以使用如下的代码:

6cfc17e00bb4571597f34a06480d105b.png

PEEK_WORD指令用来读取字(WORD)类型数据。
假设我们要读取DB100的第20个字节开始的字到MW10中,则可以使用如下的代码:

f61c9173c8975f0d952abe6b90ddba0d.png

PEEK_DWORD指令用来读取双字(Double WORD)类型数据。
假设我们要读取DB100的第10个字节开始的双字到MD0中,则可以使用如下的代码:

ac73bc7d19e9ba11d15767b4a4ded471.png

好了,关于西门子SCL语言中的PEEK指令就先介绍到这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML第一章:初始HTML

设置ws字体大小&#xff1a;左上角file-->Settings--->在搜索框中输入font网页的第一行一定是<!DOCTYPE html>&#xff1a;网页声明&#xff0c;代表这个页面是h5页面html标签中的leng"en"&#xff1a;意思是网页中会用到英文 <meta>&#xff1a;…

Guava的Collections2:过滤和转换Java集合

Groovy的便利之一是能够通过Groovy的闭包支持轻松地对集合执行过滤和转换操作。 Guava将对集合的过滤和转换引入标准Java&#xff0c;这是本文的主题。 Guava的Collections2类具有两个公共方法&#xff0c;这两个方法都是静态的。 方法filter&#xff08;Collection&#xff0…

钉钉机器人怎么设置自动回复_项目部署成功后触发钉钉机器人发送消息提醒——入门配置...

钉钉建好一个群打开群设置, 找到群机器人添加一个你想要的机器人可以使用自定义自定义机器人可以自定义头像,名字,生成一个webhook(https post的请求地址)到这里, 钉钉机器人设置好了,接下来我们对照文档进行配置https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq/XAzBI -…

mysql加锁语法_MySql 加锁问题

1、设置非自动提交 set autocommit0; 这时候 for update才会起作用2、一般用法 set autocommit0; for update(加锁) ; commit/rollback; set autocommit1;首先看一下&#xff0c;set autocommit0 后&#xff0c;执行哪些语句会自动加锁&#xff0c;加的是什么锁&#xff1f…

td过长,将固定宽度table撑开

解决办法&#xff1a; 在table上加上样式: table{table-layout:fixed;word-break:break-all} table-layout:fixed tablle的列宽由表格宽度和列宽设定。 word-break:break-all 允许在单词内换行。 正常情况下&#xff1a; table表格中td过长&#xff1a; 加上样式之后&#…

Spring Boot 之注解@Component @ConfigurationProperties(prefix = sms)

从spring-boot开始&#xff0c;已经支持yml文件形式的配置&#xff0c;ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象 例如&#xff1a; 配置文件: sms.urlXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.appkeyXXXXXXXXXXXXXXXXXXXXXXXXXXXXX …

Java临时缓存API –测试早期草案评审RI

它被称为“ 永无止境的故事 ”。 JSR在11年半前开始运作&#xff0c;并于2001年3月6日通过了JSR 评审投票 。 如果您想知道要获得成千上万个低JSR编号需要什么&#xff0c;那就是秘密。 与迈克尔恩德&#xff08;Michael Ende&#xff09;的德国幻想小说不同&#xff0c;这不是…

Android几秒后自动关闭dialog

代码改变世界 Android几秒后自动关闭dialog AlertDialog.Builder builder new AlertDialog.Builder(v.getContext());builder.setTitle("发送成功&#xff01;");builder.setMessage("2秒后自动关闭&#xff01;");builder.setCancelable(true);final Ale…

如何获取注解中的值_如何在运行时利用注解信息

注解&#xff08; annontation &#xff09;是 Java 1.5 之后引入的一个为程序添加元数据的功能。注解本身并不是魔法&#xff0c;只是在代码里添加了描述代码自身的信息&#xff0c;至于如何理解和使用这些信息&#xff0c;则需要专门的解析代码来负责。本文首先介绍注解的基本…

mysql5.7运行按钮_MySQL 5.7.* 启动问题

mysql-5.7.10-winx64启动 mysqld.exe&#xff0c;报错&#xff1a;mysqld: Could not create or access the registry key needed for the MySQL applicationto log to the Windows EventLog. Run the application with sufficientprivileges once to create the key, add the …

控制元素的div属性

1、需求分析 改变元素的宽、高、颜色、显示、重置等属性。 2、技术分析 基础的css、html、js 3、详细分析 如图&#xff0c;单击按钮&#xff0c;改变元素属性: 3.1 HTML部分 根据视图不难发现&#xff0c;内容分两大不分:按钮栏和效果图&#xff0c;所以设置两个div。 <…

使用JMeter和Yourkit进行REST / HTTP服务的性能分析

我的上一篇文章描述了如何使用JMeter完成异步REST / HTTP服务的压力测试或负载测试。 但是&#xff0c;运行这样的测试通常表明被测系统不能很好地应对不断增加的负载。 现在的问题是如何找到瓶颈&#xff1f; 深入研究代码以检测可疑部分可能是另一种选择。 但是考虑到潜在的…

EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题

1.当页面加载的完成时,如果面板中的内容是未加载的如果把他的状态从隐藏变为显示会导致破版,页面信息显示不全 2.这时需要刷新面板$(#id).panel(open).panel(refresh); 3.它就会重新加载转载于:https://www.cnblogs.com/eagle-xie/p/6892706.html

java中间件_90%的Java程序员,都扛不住这波消息中间件的面试四连炮!

概述大家平时也有用到一些消息中间件(MQ)&#xff0c;但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。对MQ更加深入的问题&#xff0c;可能很多人没怎么思考过。比如&#xff0c;你跳槽面试时&#xff0c;如果面试官看到你简历上写了&#xff0c;熟练掌握…

python 取array并集_Python内置数据结构原理与性能简易分析

ins ngladc文末左下方阅读原文指向了本人博客链接&#xff0c;不含广告。参考资料中的相关链接&#xff0c;可以在博客文章的最下方获取。推荐苹果手机用户使用浅色模式观看。前言 对于一些算法题&#xff0c;可以使用Python自带的内置函数解决。但很多时候用就用了&#xff0c…

ae合成复制脚本_稀缺资源—这几个AE脚本使用频率很高,赶紧收藏吧!

「第442期」毫无疑问&#xff0c;AE已经成为目前制作短视频比较主流的软件&#xff0c;效果的多样化深受很多创作者的喜爱。随着对软件的熟悉&#xff0c;越发觉得AE主要是基于多图层控制的软件。如果制作一些简单的效果&#xff0c;几个图层几个滤镜就可以搞定&#xff0c;但如…

android activity and fragment活动周期

1.状态 /* 每个活动一共有四种状态 *&#xff1a;1。运行状态&#xff0c;就是栈顶的那个 * 2。暂停状态&#xff1a;就是不处于栈顶&#xff0c;但是依然可见&#xff0c;比如对话框下面的界面 * 3。停止状态&#xff1a;不处于栈顶&#xff0c;并且不可见 * 4。销毁状态 * */…

html css基础知识

1 这是自己学习html时候做的一些记录&#xff0c;供大家参考 <!--2 块和内联3 块元素:独占一行的元素4 div p h ul5 div没有任何语义&#xff0c;就是一个纯粹的快元素6 就是为了方便布局7 …

番石榴的ListenableFuture

Guava中的ListenableFuture试图为Future对象定义一致的API&#xff0c;以注册完成回调。 通过在Future完成时添加回调的功能&#xff0c;我们可以异步有效地响应传入的事件。 如果您的应用程序与许多将来的对象高度并发&#xff0c;我强烈建议您尽可能使用ListenableFuture 。 …

程序员的幸福感和颈椎病

脖子一直疼&#xff01; 去医院检查&#xff0c;拍片子的医生在造影室里冲我喊&#xff1a; “小伙子&#xff0c;你多大年纪啦&#xff1f;” 我说&#xff1a;“我三十来岁&#xff0c;咋啦” 医生说&#xff1a;“怎么这么年轻就得这种病啊&#xff01;” 我当时腿就有点软&…