百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

西门子SCL语言编程——PEEK/POKE指令

xsobi 2025-04-30 20:44 9 浏览

在SCL语言编程的时候,有两个特别有意思的指令,即读取存储地址和写入存储地址指令,梯形图中貌似没有的。标准地说是两类而不是两个,因为读和写都不止一个指令。先了解这两类指令的基本说明和用法,本篇后面的示例用几行代码就能代替几十(甚至几百)行梯形图,完全验证了西门子SCL语言编程—变量中所说的在数据处理、过程优化、统计运算等方面要优于其它几种编程语言。S7-1200/1500间接寻址常常用到这两个指令。


(一)、PEEK指令用于在指定数据类型的情况下从标准存储区读取存储地址。

在编辑区直接输入“PEEK_”时弹出如下选择:

有BOOL、BYTE、WORD、DWORD、LWORD几种选择,默认为BYTE,可以不写。

PEEK指令参数介绍:

1、area 字节型数据(BYTE),用来指定读取存储区类型,可以选择的存储区有:

  • 16#81:Input(I)
  • 16#82:Output(Q)
  • 16#83:位存储区(M)
  • 16#84:DB
  • 16#1:外设输入(PI,仅 S7-1500)

2、dbNumber:DInt型数据,读取的存储区编号。如果要读取输入、输出或位存储区中的存储地址,则必须将参数 dbNumber 的值设置为“0”,否则指令将无效。

3、byteOffset:DInt型数据,用来指定读取数据的地址偏移量。


(二)、POKE指令用于在不指定数据类型的情况下将存储地址写入标准存储区。

POKE指令添加到程序中的初始状态:

1、area:Byte型数据,用来指定写入存储区的类型。存储区选择与PEEK指令area参数相同。

2、dbNumber:DInt型数据,用来指定写入数据块的编号,仅在写入数据块时使用;写入其它存储区时设置为0;

3、byteOffse:DInt型数据,用来指定写入数据的地址偏移量

4、value:可以为Byte型、Int型、DInt型数据,用来表示要写入的数据值及类型。必须为变量,不能为常量。POKE指令根据value的数据类型来决定写入多少个字节。

指令介绍再详细也不如实例那样容易让初学者立刻理解弄懂,况且博途的在线帮助功能还是很完善的,所以下面直接来点干货。


IO映射实例:

本例中,本地CPU为 1516-3 PN/DP,分布式I/O为IM155-5 PN ST,本地DI为16路输入共5个模块,地址分配0到9,分布式I/O也是5个16路输入模块,地址分配58到67,见下图:



为了节约篇幅,分布式I/O截图省略,下面是映射子程序部分截图,


全局数据块MappingDada_DI是间接寻址所用数据块,命名方式与DI模块IO地址相似,见下图:


这个实例是实际工程应用,输出映射同样的道理。

相关推荐

麒麟系统装好了吗?学下常用的操作指令成为大神吧!

前几天写了一篇安装银河麒麟的操作系统,展示阅读量都不错,看来大家对这个话题还是感兴趣的,今天我们一起来学习一下常用的操作指令,成为小白眼里的大神吧!首先,我们先从图形界面打开终端模式,两种方法:一、快...

国外友人开创Python模拟登陆神库,完美修改它为咱们所用

Awesome-python-login-model是一个国人开发的模拟登陆仓库,在这个仓库上有20几个网站的模拟登陆脚本,你可以基于这个仓库实现的代码做简易的修改,以实现自己的自动化功能。仓库地址...

介绍一个渗透测试中使用的WEB扫描工具:Skipfish

Skipfish简介Skipfish是一款主动的、轻量级的Web应用程序安全侦察工具。它通过执行递归爬取和基于字典的探测来为目标站点准备交互式站点地图。该工具生成的最终报告旨在作为专业Web应用程序安...

注册时显示注册单位名称已存在或被恶意抢注,应当如何处理?

企业环保知识问答(中英文对照版)Q注册时显示注册单位名称已存在或被恶意抢注,应当如何处理?Whenregistering,itshowsthatthenameoftheregiste...

《英雄联盟手游》账号注册教程(英雄联盟手游如何注册帐号)

  《英雄联盟》可是风靡全球的MOBA经典之作,如今更是推出了《英雄联盟手游》(LeagueofLegends:WildRift),真正的5V5公平竞技对战,传承端游纯正体验。人气英雄,经典还原...

APIJSON快速入门-零后端代码,接口所见即所得

1.流程说明一个接口的开发,比如Java用SpringBoot,Mybatis来开发一般来说就像下面这个流程部署上这个项目后,流程变成了这样如果使用apijson-framework,还可进一步简化...

一文全面了解:如何使用Python的界面框架 PyQt 构建 GUI

如何使用PyQt构建GUI<>14分钟阅读介绍图形用户界面,更广为人知的是GUI,是当今大多数个人计算机的特征。它为不同计算技能水平的用户提供了直观的体验。尽管它们可能会使用更...

脸书又摊上事儿了!这次得罪了150万人…

美国社交媒体巨头Facebook(脸书)在保护用户隐私方面,再一次被打脸...脸?脸书的脸在哪里?据外媒最新消息,脸书被爆“无意间”获取了150万用户邮箱里的联系人信息,且是在用户不知情的情况下。V...

编程英文 - authentication、authorization和verification的区别

在软件开发中,authentication、authorization和verification都与安全和身份管理相关,但它们在流程、目的和实现方式上有明显区别。本文将详细探讨这三个词的使用方法和区别...

CentOS安装VNC(centos安装不能进入安装界面)

在远程使用Linux系统安装Oracle数据库等软件的时候,虽然使用ssh可以快速的连接远程桌面执行命令,也可以设置时候调出软件的图形安装界面,但是会面临一下问题,1、网络的中端会导致正在执行的任务...

编程英文-authentication,authorization,verification区别与用法

在软件开发中,authentication、authorization和verification都与安全和身份管理相关,但它们在流程、目的和实现方式上有明显区别。本文将详细探讨这三个词的使用方法和区别...

脸书,你还有脸吗?(脸书有意思吗)

美国社交媒体巨头Facebook(脸书)在保护用户隐私方面,再一次被打脸...脸?脸书的脸在哪里?据外媒最新消息,脸书被爆“无意间”获取了150万用户邮箱里的联系人信息,且是在用户不知情的情况下。V...

CentOS远程桌面开启笔记(for win10)

一、安装XRDP1).确认epel库是否安装[root@172-12-0-100~]#rpm-qa|grepepel若epel未安装,安装epel[root@172-12-0-100~]#...

Python高级篇~扩展和集成、RESTful API 的设计和实现

扩展和集成在编程中,扩展和集成是常见的任务,它们可以帮助开发人员更好地利用现有的代码库和工具,以加快开发速度和提高代码质量。C语言扩展和Python模块的编写在Python中,我们可以使用...

Rust Web编程:第十二章 在 Rocket 中重新创建我们的应用程序

至此,我们已经使用ActixWeb框架构建了一个功能齐全的待办事项应用程序。在本章中,我们将介绍核心概念,以便在决定在Rocket中完全重新创建待办事项应用程序时不会有任何阻碍。该框架可...