『7x24小时有问必答』
我们在做项目中,经常需要把背景数据块(DB块)里面的数据传送到其他西门子PLC的背景数据块(DB块)里,这下就需要用到批量传送。
干货★★★★★资料

KEEK :读取存储器指令
“读取存储地址”指令用于在不指定数据类型的情况下从存储区读取存储地址。
使用以下语法更改指令的数据类型:
PEEK_();
使用存储区 16#84:DB
如果将数据块用作存储区且在创建程序代码时未知,则可通过 EN/ENO 机制识别可能的访问错误:
SCL示例原理:
#Peeker := PEEK(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2,
ENO => ENO);
IF NOT ENO THEN;
#Peeker := 16#ffff;
END_IF;

POKE:写入存储器地址指令
“写入存储地址”指令用于在不指定数据类型的情况下将存储地址写入标准存储区。
使用存储区 16#84:DB
如果将数据块用作存储区且在创建程序代码时未知,则可通过 EN/ENO 机制识别可能的访问错误:
SCL示例原理:
POKE(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2,
VALUE := BYTE#7,
ENO => ENO);
以上我们简单的了解PEEK指令 和POKE指令的用法及注意事项,下面我们打开软件:
1.)组态一个PLC并添加两个背景数据块(DB)及FB程序需要的变量接口和数据类型声明
2.)调用PEEK指令:
3.)设置PEEK指令必要参数:
4.)调用POKE指令:
5.)我们开始进入SCL程序编写:
6.)我们在线进行测试,用DB1数据块数组A写入DB2数据块数组B里面:
(DB1数组写入时不清0状态)
7.)结构体多种数据的写入(还是在DB1/DB2数据块中进行测试):
(结构数据类型的测试)
进入大家庭 圈  回复:    交流
文章简单的介绍了数据块与数据块的批量传送数据,其中用数组与数据传送,用结构体数据与结构体数据传送,DB2数据块正常结束DB1写入的数据。由于时间关系及作者自身水平有限,文章中难免介绍有错的地方,望广大朋友,专家,学者多多指导

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码