說明
全局數據塊中的變量可以按符號名或絕對地址進行尋址。對于符號尋址,可以使用數據塊的名稱和變量名,并用圓點分隔。數據塊的名稱用引號括起來。
對于絕對尋址,可以使用數據塊的編號和數據塊變量的絕對地址,并用圓點分隔。地址標識符 % 被自動設置為絕對地址的前綴。
S7-1200/1500 提供了一個選項,用于訪問編程期間處于未知狀態的數據塊。為此,請在訪問塊的塊接口中創建一個 DB_ANY 數據類型的塊參數。數據塊名稱或數據塊編號將在運行期間傳送到此參數。為了訪問數據塊的內部變量,請使用 DB_ANY 數據類型的塊參數名稱以及變量的絕對地址,并用圓點分隔。
說明 將帶存儲器預留區的 DB 傳送至參數 DB_ANY。 無法將帶存儲器預留區的 DB 傳送至數據類型為“DB_ANY”的塊參數。 |
說明 按絕對地址對 DB 變量尋址 以下變量無法進行絕對尋址: 優化訪問塊中的變量。 LWORD、LINT、ULINT、LREAL、LTIME、LTOD 和 LDT 數據類型的變量。 最佳做法是對這些變量使用更為便捷的符號尋址。 |
ARRAY 數據塊
ARRAY 數據塊是一種特殊類型的全局數據塊。這些數據塊包含一個任意數據類型的 ARRAY。例如,可以是 PLC 數據類型 (UDT) 的 ARRAY。
可通過關鍵字“THIS”尋址 ARRAY 數據塊中的元素。然后再在方括號中指定下標。下標可以是一個常量,也可以是一個變量。變量類型的下標最大可支持長度為 32 位的整數。
尋址 ARRAY 數據塊的擴展選項位于“指令”(Instructions) 任務卡的“移動”(Move) 區域中。例如,可以通過這些指令對數據塊名稱進行間接尋址。
語法
"
#
"
SCL:
"
下表內容為數據塊中變量可能的絕對地址:
數據類型 | 絕對地址 | 示例 | 說明 |
---|---|---|---|
BOOL | %DBn.DBXx.y | %DB1.DBX1.0 | DB1 中的數據位 1.0 |
BYTE, CHAR, SINT, USINT | %DBn.DBBy | %DB1.DBB1 | DB1 中的數據位 1 |
WORD, INT, UINT | %DBn. DBWy | %DB1.DBW1 | DB1 中的數據字 1 |
DWORD, DINT, UDINT, REAL, TIME | %DBn.DBDy | %DB1.DBD1 | DB1 中的數據雙字 1 |
示例
以下示例為全局數據塊變量的尋址:
尋址 | 說明 |
---|---|
"Motor".Value | 全局數據塊 "Value" 中變量 "Motor" 的符號尋址。 |
%DB1.DBX1.0 | 全局數據塊 "DB1" 中變量 "DBX1.0" 的絕對尋址。 |
#MyDBAny.%DBX30.0 | 運行期間在 "MyDBany" 參數上傳遞的全局數據塊中 "DBX30.0" 變量的絕對尋址。 |
"MyARRAY_DB".THIS[#MyIndex].MyComponent.MyComponentElement | 尋址 ARRAY 數據塊。通過 "MyIndex" 變量指定 ARRAY 下標。ARRAY 元素具有 2 個附加子結構:“MyComponent”和“MyComponentElement”。 |
審核編輯:湯梓紅
-
西門子
+關注
關注
94文章
3055瀏覽量
116150 -
變量
+關注
關注
0文章
613瀏覽量
28427 -
數據類型
+關注
關注
0文章
236瀏覽量
13638 -
S7-1200
+關注
關注
11文章
331瀏覽量
18027
原文標題:西門子博途:全局數據塊中的變量尋址
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論