间接寻址,使用数组的符号地址访问
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 数据类型。
语法
以下语法可用于间接寻址全局变量:
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; |
审核编辑:刘清
-
计数器
+关注
关注
32文章
2253浏览量
94351 -
定时器
+关注
关注
23文章
3237浏览量
114464 -
间接寻址
+关注
关注
0文章
19浏览量
8038 -
SCL
+关注
关注
1文章
239浏览量
17036
原文标题:STEP 7 博图 中的SCL间接寻址
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论