间接寻址,使用数组的符号地址访问
Syntax: „
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; |
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !