間接尋址,使用數組的符號地址訪問
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文章
2261瀏覽量
94999 -
定時器
+關注
關注
23文章
3255瀏覽量
115390 -
間接尋址
+關注
關注
0文章
19瀏覽量
8073 -
SCL
+關注
關注
1文章
239瀏覽量
17178
原文標題:STEP 7 博圖 中的SCL間接尋址
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論