發(fā)布時間:2019-05-18 來源:眾智博遠(yuǎn)
通過可變下標(biāo)在 TIA Portal 中實(shí)現(xiàn) ARRAY 訪問
在處理相同數(shù)據(jù)類型的組裝數(shù)據(jù)時,使用 ARRAY 是明智的選擇。 要對 ARRAY 元素進(jìn)行尋址,可以將整數(shù)數(shù)據(jù)類型的常量或變量指定為下標(biāo)。 在此,只能使用大長度為 32 位的整數(shù)。
使用變量進(jìn)行間接尋址時,僅在程序運(yùn)行時計(jì)算下標(biāo)。 例如,在程序循環(huán)中,每次循環(huán)都使用不同的下標(biāo)。 也可以訪問 PLC 數(shù)據(jù)類型 (UDT) 中的 ARRAY。
這種方法具有以下優(yōu)點(diǎn):
無需通過地址寄存器或 ANY 指針等自組裝指針進(jìn)行尋址。
程序更加靈活。
可變下標(biāo)可以在所有 STEP 7 編程語言中使用。
它使用數(shù)據(jù)塊和 ARRAY 變量的現(xiàn)有名稱(符號尋址)。 這提高了程序代碼的可讀性。
不必已知 ARRAY 的起始地址。
程序代碼更容易創(chuàng)建,編譯器將生成優(yōu)化的程序代碼。
STEP 7 V5.x 中的操作步驟
在 STEP 7 V5.x 中,用戶須借助自組態(tài)的 POINTER 來使用地址寄存器,對 ARRAY 元素進(jìn)行間接尋址。 因此,須將以下因素考慮在內(nèi):
未使用 ARRAY 的名稱。 這會降低程序代碼的可讀性,從而需要添加注釋。
須已知 ARRAY 的起始地址才能執(zhí)行尋址。
SCL 編程語言已經(jīng)支持使用可變下標(biāo)的間接尋址。
STEP 7 V5.x 中的編程示例
以下 STL 示例需要“Data_classic”數(shù)據(jù)塊。 要對“Quantities”ARRAY 元素進(jìn)行尋址,須使用以下命令:
說明 | |
---|---|
OPN "Data_classic" | //“Data_classic”數(shù)據(jù)塊被調(diào)用。 |
L #index | // 本地變量 #index 的值加載到累加器 1 中。 |
SLD 3 | // 將累加器 1 的第 0 位到第 31 位向左移動 3 位。 // 使用零填充目前為空的位。 |
LAR1 | // 將累加器 1 的內(nèi)容加載到地址寄存器 1。 |
L DBW [AR1, P#10.0] | // 將地址為 #index ARRAY 元素加載到累加器 1。 // P#10.0 = 數(shù)組的起始地址 |