SCL中数据块的间接寻址

描述

间接寻址,使用数组的符号地址访问

Syntax:        „“.[Index]

SCL

SCL 中数据块的间接寻址

可以使用转换函数 WORD_TO_BLOCK_DB 来间接寻址数据块。因此要将 DB 号指定为 WORD 数据类型的变量或表达式。

语法

以下语法可用于间接寻址数据块:

WORD_TO_BLOCK_DB(索引).Operand ID (地址)

示例

示例 1:将 WORD 数据类型的全局变量“Address index”用作 DB 号。

在 SCL 中寻址
%M0.0:=WORD_TO_BLOCK_DB("Addressindex").DX(0,0);
%MW0:=WORD_TO_BLOCK_DB("Addressindex").DW(4);

示例 2:将 WORD 数据类型的全局变量“Address index”用作 DB 号。还可通过索引来指定 DB 中的数据元素:

在 SCL 中寻址
%M0.0:=WORD_TO_BLOCK_DB("Addressindex").DX(#i,#y);
%MW0:=WORD_TO_BLOCK_DB("Addressindex").DW(#y);

SCL 中变量的间接寻址

间接寻址类似于绝对地址寻址。指定圆括号中的偏移量而非地址。偏移量由一个字节变量组成,如果是布尔型操作数,有一字节变量和一位变量。字节和位变量必须是 INT 数据类型。

PLC 变量表的定时器和计数器无法以这种方法间接寻址。

语法

以下语法可用于间接寻址全局变量:

Operand ID (Byte tag)

Operand ID (Byte tag.Bit tag)

以下语法可用于间接寻址 DB 变量:

MyDB.OperandID(ByteTag)

MyDB.OperandID(ByteTag.BitTag)

示例

示例 1:根据变量 i 的值,将输入字 2 到 8 中的一个设置为 0。

在 SCL 中寻址
#i:=2;
FOR #i := 2 TO 8 DO
%IW(#i) := 0 ;
END_FOR;

示例 2:根据变量 i 的值,将 DB10 中的字 2 到 8 中的一个设置为 0。

在 SCL 中寻址
#i:=2;
FOR #i := 2 TO 8 DO
%DB10.DW(#i) := 0 ;
END_FOR;







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分