[西门子] 西门子1200/1500PLC使用PEEK和POKE指令实现数据块间接寻址

[复制链接]
查看91 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式
>

对于非优化的块数据并且没有建立ARRAY数组的情况下,我们可以使用PEEK指令或者POKE指令实现对数据块的间接寻址,PEEK指令实现对数据区的读取,POKE指令实现对数据区的写入。



一:PEEK和POKE指令说明

1.1:PEEK和POKE指令有三种可以返回的数据格式,分别是BYTE、WORD、DWORD。我们实际使用是PEEK返回BYTE数据,PEEK_WORD返回WORD数据,PEEK_DWORD返回DWORD数据。POKE指令和PEEK指令同样存在这三种形式。


1.2:由于PEEK和POKE指令只能在SCL语言中使用,所以我们需要建立一个编程语言选用SCL语言的FB功能块或者FC功能。另外如果需要在梯形图程序块中直接采用SCL语言也是可以的,我们可以在LAD程序段中单击鼠标右键弹出菜单选择插入SCL程序段即可。


在梯形图程序段中插入SCL程序段


1.3:指令参数说明


指令的参数说明


二:指令的实际使用

下面我们将具体说一下该指令的使用,具体实例为:有一个全局数据块里面存储了许多DINT的数据,我们需要建立一个功能块来实现给出全局数据块和索引(就是第几个数据、从零开始)来检索出该数据。

2.1:建立一个非优化的全局数据块,内部建立16个DINT类型的数据。


全局数据块数据

2.2:建立一个FB程序块,采用SCL编程语言,接口变量定义和内部程序段如下


接口变量定义


内部程序段

2.3:在其他程序段内调用该FB程序块,实现上述功能


调用功能块



文章来源:综合网络,本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。


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

本帖子中包含更多资源

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

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

本版积分规则