回复:应用探讨——西门子指针编程使用探讨

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    309

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2011-12-08 17:45:09

94楼

SCL的间接寻址
SCL可以对全局变量、数据块中的变量和数据块进行间接寻址。SCL的间接寻址类似于绝对地址寻址,方括号中的地址可以是常数、变量或表达式。
对字节、字和双字间接寻址时,只需使用一个地址指针,例如QW[INTEX],指针中是字和双字的起始字节的地址。对Bool变量间接寻址时,需要两个地址指针,第一个是字节地址,第2个是字节内的位地址,例如M[BYTENO, BITNO]。指针的数据类型为INT。
可以使用转换函数WORD_TO_BLOCK_DB对数据块内的变量间接寻址。例如WORD_TO_BLOCK_DB(ADDRWORD).DW[INTEX];
其中的变量ADDRWORD的数据类型为WORD。
下面是间接寻址的例程:

VAR
BYTENO: INT;
BITNO: INT;
INTEX: INT;
ADDRWORD: WORD;
END_VAR

FOR INTEX := 2 TO 20 BY 2 DO
QW[INTEX] :=0; //将QW2~QW20清零
END_FOR;

M2.3 :=I[BYTENO, BITNO];
MW20:=DB1.DW[INTEX+2];
M24.5:=DB2.DX[BYTENO, BITNO];
MW26:= WORD_TO_BLOCK_DB(ADDRWORD).DW[INTEX];

END_FUNCTION_BLOCK
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54711条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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