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所示。
图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所示。
图2. 输入peek指令
2、示例程序
以peek_bool和peek_lword指令测试示例,如图3所示。
图3. peek指令使用示例
poke 指令
1、指令语法
poke 指令用来对存储区数据写入操作。不仅支持位、字节、字、双字、长字操作,还可以实现区域数据移动操作。
poke 指令,可在指令内直接将结果传递给对应变量。
(1) poke指令
新建scl程序块fb1,在基本指令->移动操作->读/写存储区内,调用poke指令。poke指令的语法,如图4所示。
图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所示。
图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所示。
图6. poke指令使用示例
(2) poke_blk指令
poke_blk指令测试示例,如图7所示。
图7. poke_blk指令使用示例
4G视频监控数据将采用无线采集传输技术
Vishay扩展汽车级SMD铝电容器的电压范围
字节跳动参与的海外研究成果入选Nature子刊
中保再次合作 中科创达收购保加利亚高技术企业MM Solutions
中科院纳米能源所开发摩擦纳米发电机,可收集全向水波能
怎样去使用S7-1500 SCL PEEK和POKE指令呢
广和通LTE Cat1 bis模组MC610上市
SDN网络感知服务与最短路径的结构和分析以及流量统计
EPR注册之电器和电子设备废弃物WEEE注册
美国用户在iPhone上花费的平均金额在2018年达到了79美元
量子通信推动着新一轮通信技术变革和通信产业结构调整
东芝推出新款采用PWM控制的双H桥直流有刷电机驱动IC,推荐应用为移动设备和家用电器
新加坡发现利用果皮废料可从废旧锂离子电池中提取出重金属
2021中国功率分立器件市场年度报告
4大技术推动雷达的发展
努比亚阿尔法体验 它是一款双形态的未来科技装备
人工智能技术可以让人永葆青春?
新增5寸!iPhone 8双版本齐曝光:超诱人
用科技守护出行安全: 360车联网发布汽车安全大脑
现阶段脑机接口发展到哪里了?