首页 > 其他分享 >Peek ____Poke 博图指令

Peek ____Poke 博图指令

时间:2024-01-16 15:22:59浏览次数:30  
标签:Peek 存储 POKE 16 DB ____ PEEK 博图 指令

PEEK 指令

 PEEK 指令用来读取存储区数据,支持位、字节、字、双字、长字操作。PEEK指令将获取的数据值以返回值的方式赋值给对应的变量。

1、指令语法

新建SCL程序块FB1,在基本指令->移动操作->读/写存储区内,调用PEEK指令。PEEK指令的语法,如图1所示。

EEK指令管脚参数说明:

参数 数据类型 含义
area

BYTE

//可以选择以下区域:
  • 16#81:输入
  • 16#82:输出
  • 16#83:位存储区
  • 16#84:DB
  • 16#1:外设输入(仅 S7-1500)
dbNumber

DINT、DB_ANY

//如果 AREA = DB,则为数据块数量,否则为“0”

byteoffset

DINT

//待读取的地址

bitoffset

INT

//待读取的位

函数值

BOOL、BYTE、WORD、DWORD、LWORD

//PEEK指令读取返回值

需要注意的是,在指令列表中只有PEEK和PEEK_BOOL两个指令,PEEK相当于PEEK_BYTE。

当需要其他使用PEEK指令时,可以在将指令拖拽到程序编辑区后手动添加后缀“_WORD”或“_DWORD”,或者在程序中直接输入指令然后通过选择的方式选定,如图2所示。

 

 2、示例程序

以PEEK_BOOL和PEEK_LWORD指令测试示例,如图3所示。

 POKE 指令

1、指令语法

POKE 指令用来对存储区数据写入操作。不仅支持位、字节、字、双字、长字操作,还可以实现区域数据移动操作。

POKE 指令,可在指令内直接将结果传递给对应变量。

(1) POKE指令

新建SCL程序块FB1,在基本指令->移动操作->读/写存储区内,调用POKE指令。POKE指令的语法,如图4所示。

 

POKE指令管脚参数说明:

参数 数据类型 含义
area

BYTE

//可以选择以下区域:
  • 16#81:输入
  • 16#82:输出
  • 16#83:位存储区
  • 16#84:DB
  • 16#2:外设输出(仅 S7-1500)
dbNumber

DINT、DB_ANY

//如果 AREA = DB,则为数据块数量,否则为“0”

byteoffset

DINT

//待写入的地址

bitoffset

INT

//待写入的位

value

BOOL、BYTE、WORD、DWORD、LWORD

//待写入的值

说明:没有POKE_BYTE、POKE_WORD、POKE_DWORD、POKE_LWORD指令。实现写入字节、字、双字、长字,取决于待写入的变量value的数据类型,如图4所示,不同的数据类型写入的结果不同。

(2) POKE_BLK指令

指令功能:将源数据块、I/O 或存储区从 byteOffset 开始的"count"个字节,写入目标数据块、I/O 或存储区 byteOffset 开始的区域。

新建SCL程序块FB1,在基本指令->移动操作->读/写存储区内,调用POKE_BLK指令。POKE_BLK指令的语法,如图5所示。

POKE_BLK指令管脚参数说明:

参数 数据类型 含义
area_src

BYTE

//可以在源存储区中选择以下区域:
  • 16#81:Input
  • 16#82:Output
  • 16#83:位存储区
  • 16#84:DB
dbNumber_src

DINT、DB_ANY

//如果 AREA = DB,则为源存储区中的数据块数量,否则为“0”

byteoffset_src

DINT

//源存储区中待读取的地址

area_dest   可以在目的存储区中选择以下区域:
  • 16#81:Input
  • 16#82:Output
  • 16#83:位存储区
  • 16#84:DB
dbNumber_dest  

//如果 AREA = DB,则为目的存储区中的数据块数量,否则为“0”

byteoffset_dest

INT

//目的存储区中待写入的地址

count

DINT

//待复制的字节数目

注意:dbNumber_src 和 dbNumber_dest 参数必须属于同一种数据类型。即,两个变量必须为 DINT 数据类型或 DB_ANY 数据类型。

2、示例程序
(1) POKE 指令示例
POKE_BOOL和POKE指令测试示例,如图6所示。

 (2) POKE_BLK指令

POKE_BLK指令测试示例,如图7所示。

 

标签:Peek,存储,POKE,16,DB,____,PEEK,博图,指令
From: https://www.cnblogs.com/ZBO123/p/17967742

相关文章

  • 关于CH32V003J4M6下载烧录注意事项
    对CH32V003J4M6进行下载烧录时,注意打印引脚要修改使用复用的打印引脚,否则因为PD1与PD5引脚是合封在一起的,使用默认的打印引脚之后会导致PD1的SWDIO信号受影响而无法下载以及debug,需要清空flash之后才能继续下载使用。  ......
  • Docker Compose学习路线
    DockerCompose是一种用于定义和运行多容器Docker应用程序的工具。以下是一份DockerCompose的学习路线:基础知识:了解DockerCompose的概念和用途熟悉DockerCompose的基本语法和命令环境搭建:安装Docker和DockerCompose配置DockerCompose环境变量基本概念和配置......
  • SqlSugar新增数据
    1、插入方式1.1单条插入实体//返回插入行数db.Insertable(insertObj).ExecuteCommand(); //都是参数化实现//异步: await db.Insertable(insertObj).ExecuteCommandAsync() //插入返回自增列 (实体除ORACLE外实体要配置自增,Oracle需要配置序列)db.Insertable(in......
  • Linux--修改会话超时时间
    控制用户在一段时间内没有活动时会话的自动注销时间 1、修改ssh配置文件(适用于SSH会话)vim/etc/ssh/sshd_configClientAliveInterval1800#秒ClientAliveCountMax0#次数#更新配置sudosystemctlreloadsshd 2、修改终端环境变量(适用于交互式终端会话)用户......
  • 文心一言 VS 讯飞星火 VS chatgpt (180)-- 算法导论13.4 3题
    三、用go语言,在练习13.3-2中,将关键字41、38、31、12、19、8连续插入一棵初始的空树中,从而得到一棵红黑树。请给出从该树中连续删除关键字8、12、19、31、38、41后的红黑树。文心一言,代码不能运行:为了解决这个问题,我们首先需要构建一棵红黑树,然后依次删除给定的关键字。以下......
  • SqlSugar更新数据
    1、根据实体对象更新所谓按实体对象更新就是:db.Updateable(参数对象)有参数的重载db.Updateable(实体或者集合).ExecuteCommand() //右标题1 下面的所有菜单优点1、代码少2、支持各种批量修改缺点1、不支持表达式和sql函数2、依赖 实体对象,没实体对象就需......
  • SqlSugar删除数据
    1、根据实体删除1.1强类型实体 需要配置主键,根据主键删除需要给实体配置主键,参考文档实体配置//单个实体db.Deleteable<Student>(new Student() { Id = 1 }).ExecuteCommand(); //List<实体> (可以不加Where)List<Student> list=new List<Student>(){......
  • 《标签篇》Vue.directives自定义指令v-my
    参考链接:https://www.runoob.com/vue2/vue-custom-directive.html自定义指令除了默认设置的核心指令(v-model和v-show),Vue也允许注册自定义指令。下面我们注册一个全局指令v-focus,该指令的功能是在页面加载时,元素获得焦点:<divid="app"> <p>页面载入时,input元素自......
  • 数据库高可用方案
    MySQL高可用架构MySQL高可用架构主要包括:主从复制(Master-SlaveReplication):通过将主数据库的更改同步到一组从数据库来实现高可用性。当主数据库宕机时,从数据库可以被提升为新的主数据库。主主复制(Master-MasterReplication):两个或多个主数据库相互同步,每个主数据库都可以处理......
  • SqlSugar基础查询
    查所有List<Student> list=db.Queryable<Student>().ToList()//select * from Student查询总数int count=db.Queryable<Student>().Count()//select count(1) from Student按条件查询db.Queryable<Student>().Where(it=>it.Id......