0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样去使用S7-1500 SCL PEEK和POKE指令呢

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-10-08 10:04 次阅读

S7-1500 SCL PEEK 和 POKE 指令使用

PEEK 和 POKE 指令,可在不指定数据类型的情况下对 Input区、Output区、M 存储区、DB块和PI/Q(物理输入/输出,仅S7-1500支持)读取或写入。通过 POKE_BLK 指令,还可以实现数据区域的复制或移动。

指令适用条件:

只能用于 SCL 编程语言;
适用操作存储区域,I、Q、M、DB、PI/Q(仅S7-1500支持);
DB必须是非优化访问的块。

以下内容使用TIA V17 Pro软件测试。

PEEK 指令

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

1、指令语法

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

1fb42ae8-463e-11ed-96c9-dac502259ad0.jpg

图1. PEEK指令语法

PEEK指令管脚参数说明:

参数 数据类型 含义
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所示。

1fda79aa-463e-11ed-96c9-dac502259ad0.jpg

图2. 输入PEEK指令

2、示例程序

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

200d43ee-463e-11ed-96c9-dac502259ad0.jpg

图3. PEEK指令使用示例

POKE 指令

1、指令语法

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

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

(1) POKE指令

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

2080193c-463e-11ed-96c9-dac502259ad0.jpg

图4. POKE指令语法

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所示。

20bbbbcc-463e-11ed-96c9-dac502259ad0.jpg

图5. POKE_BLK指令语法

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所示。

21031378-463e-11ed-96c9-dac502259ad0.jpg

图6. POKE指令使用示例

(2) POKE_BLK指令

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

213f7dea-463e-11ed-96c9-dac502259ad0.jpg

图7. POKE_BLK指令使用示例




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34736
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17081
  • S7-1500
    +关注

    关注

    3

    文章

    300

    浏览量

    6408

原文标题:S7-1500 SCL PEEK 和 POKE 指令使用

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于S7-1500的运动控制原理及实例

    S7-1500 的运动控制功能支持车由的定位和移动,是S7-1500 系列CPU 众多集成功能中的重要组成部分。 运动控制功能支持旋转轴、定位轴、同步轴和外部编码器等工艺对象。根据PLC-Open
    发表于 09-26 08:32 93次下载
    基于<b class='flag-5'>S7-1500</b>的运动控制原理及实例

    S7-1500系统架构及特点

    S7-1500 的数据管理系统中,提供两种不同的块访问机制: 优化访问、 非优化访问(兼容 S7-300/400),S7-1500 FW V1 及以上版本中,支持自动初始化功能。S7-
    发表于 10-10 11:40 29次下载
    <b class='flag-5'>S7-1500</b>系统架构及特点

    西门子S7-1200 和 S7-1500 的编程指南pdf下载

    西门子S7-1200 和 S7-1500 的编程指南
    发表于 03-27 15:15 297次下载

    西门子S7-1500凭什么秒杀S7-300/400?

    西门子S7-1500作为西门子迄今为止功能最强大、性价比最高的PLC,得到了广大客户关注,今天与大家分享西门子西门子S7-1500S7-300、S7-400相PK 的几点优势以及型谱
    的头像 发表于 04-27 14:16 2.5w次阅读
    西门子<b class='flag-5'>S7-1500</b>凭什么秒杀<b class='flag-5'>S7</b>-300/400?

    西门子S7-1200和S7-1500编程风格指南

    西门子S7-1200和S7-1500编程风格指南分享
    发表于 08-17 17:30 21次下载

    关于S7-1200或S7-1500 PLC的通信

    WinCC V7.4SP1中针对S7-1200 或 S7-1500通信,可以创建状态变量和控制变量,用来显示和控制S7-1200 或 S7-1500 PLC的通信。
    发表于 10-09 10:05 2230次阅读

    S7-1500S7-1500之间S7通信

    使用 STEP7 V14 在同一个项目中,新建两个S7-1500站点,然后做 S7 通讯。
    的头像 发表于 11-23 09:53 3009次阅读

    S7-1500 CPU支持与其它S7-1500 CPU进行直接数据交换

    从固件版本 V2.8 开始,S7-1500 CPU 支持与其它 S7-1500 CPU 进行直接数据交换。在直接数据交换的情况下,S7-1500 CPU 将 I/O 区域中的循环用户数据提供给一个或
    的头像 发表于 11-29 09:53 4149次阅读

    WinCC与 S7-1200/S7-1500 PLC之间的通信解析

    自WinCC V7.2版本起,软件新增加了 "SIMATIC S7-1200, S7-1500 Channel"通道,用于WinCC与 S7-1200/S7-1500 PLC之间的通信
    发表于 02-06 09:39 8364次阅读

    SIMATIC S7-1500的Profibus DP通讯

    SIMATIC S7-1500的Profibus DP通讯
    的头像 发表于 05-04 15:20 1888次阅读
    SIMATIC <b class='flag-5'>S7-1500</b>的Profibus DP通讯

    西门子S7-1500 之间 S7 通信

    S7-1500S7-1500 之间 S7 通信 S7-1500 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。
    的头像 发表于 05-29 14:04 5710次阅读
    西门子<b class='flag-5'>S7-1500</b> 之间 <b class='flag-5'>S7</b> 通信

    S7-1500之间S7通信实例

    S7-1500 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。S7-1500 支持 S7单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
    的头像 发表于 06-01 09:25 3230次阅读
    <b class='flag-5'>S7-1500</b>之间<b class='flag-5'>S7</b>通信实例

    S7-1200/S7-1500与精简面板仿真过程的步骤

    S7-1200/S7-1500与精简面板仿真有两个需要注意的问题。
    的头像 发表于 08-23 10:45 1937次阅读
    <b class='flag-5'>S7</b>-1200/<b class='flag-5'>S7-1500</b>与精简面板仿真过程的步骤

    SCL编程可以批量处理模拟量吗?

    博途的间接寻址和S7-300/400大不一样。博途中的间接寻址主要用peek/poke指令peek/p
    的头像 发表于 09-07 15:56 706次阅读
    <b class='flag-5'>SCL</b>编程可以批量处理模拟量吗?

    S7-1500冗余 PLC 1500R使用入门

    电子发烧友网站提供《S7-1500冗余 PLC 1500R使用入门.pdf》资料免费下载
    发表于 08-13 09:12 1次下载