Глобальные данные
S7-SCL V5.1 для S7-300/S7-400
9-10
A5E00059543-01
9.3.3 Индексированный доступ к блокам данных
Вы также можете получить доступ к блоку данных с использованием индекса.
Преимущество этого метода перед методом абсолютной адресации
заключается в том, что он позволяет обращаться к областям, адрес которых
определяется после запуска программы. Можно, например, использовать в
качестве адреса переменную цикла FOR.
Индексированный доступ к блокам данных похож на абсо лютный доступ.
Различие состоит только в задании адреса.
Вместо абсолютного адреса задается индекс, который может быть
константой, переменной или арифметическим выражением.
Индексированный доступ состоит из идентификатора DB, идентификатора
адреса (ключевое слово "D" и преф икс размера) и основного выражения для
индексирования.
Префикс памяти
Префикс размера
D X [i,j]
Идентификатор адреса
Адрес
Выражение для индекса
заключено в квадратные скобки
Идентификатор
DB
Синтаксис
D
ИДЕНТИФИКА-
ТОР DB
Префикс
разме ра
Иден тификатор адреса
.
,
Основное
выраже ние
[
]
Основное
выраже ние
При использовании индексов должны быть соблюдены следующие правила:
•
При доступе к данным типа BYTE, WORD или DWORD можно
использовать только один индекс. Индекс интерпретируется как адрес
байта. Область доступа определяется префиксом.
•
При доступе к данным типа BOOL используются два индекса. Первый
индекс определяет адрес байта, а второй положение бита в байте.
•
Каждый индекс должен быть арифметическим выражением типа INT (0 -
32767).
Пример
STATUS_1:= DB11.DW[COUNTER];
STATUS_2:= DB12.DX[WNO, BITNO];
STATUS_1:= Database1.DW[COUNTER];
STATUS_2:= Database2.DX[WNO, BITNO];
STATUS_1:= WORD_TO_BLOCK_DB(INDEX).DW[COUNTER];