回复:S7-1200 I区 和 Q区 怎么间接寻址

LionAL99

  • 帖子

    153
  • 精华

    4
  • 被关注

    1

论坛等级:游侠

注册时间:2007-03-20

普通 普通 如何晋级?

发布于 2013-10-27 15:43:27

5楼

quote:以下是引用wayne超在2013-05-06 16:05:57的发言:
关于S7-1200间接寻址,DB块使用FieldRead,FieldWrite,POKE、POKE_BOOL、PEEK、PEEK_BOOL、POKE_BLK以及ARRAY(数组)的方式都清楚了。
但是这些都不能用于I区和Q区,我想对IW和QW进行间接寻址怎么实现呢?

如果要对I区及Q区的字,字节或双字进行间接寻址,那还是用POKE及PEEK指令吧。
若只是对I区及Q区进行位间接寻址,这里提供另外一种方法(以FC中SCL编程方式,FC为一般访问方式):
1)假设欲对QW0进行间接位寻址,先在PLC变量表中建立一个word变量(假设为wordTag1),此变量绝对地址为QW0;
2)在FC的接口区Temp参数区建立一个word变量(假设为wordTemp1),并对其建立覆盖变量,覆盖变量名为at1,类型为array[0..15] of bool;
3)在FC的接口区Temp参数区建立一个int变量(假设为i);
3)将QW0传送给wordTemp1;
4)用数组实现对QW0位的间接寻址,方式为#at1[#i],改变i值即可取出相应QW0的位值;

如果只需寻址具体的位,则更简单,直接使用变量的部分引用,形式为"wordTag1".X5;
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15620条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。