Вы находитесь на странице: 1из 3

Скачано с https://forum.proasutp.

com
STEP 7 Professional V13 SP1
Адресация переменных в глобальных блоках данных

Адресация переменных в глобальных блоках данных

Описание
Доступ к тегам в глобальных блоках данных можно получить через символическую или
абсолютную адресацию. При символической адресации используется имя блока данных
и имя тега разделенные точкой. Имя блока данных заключается в двойные кавычки.
При абсолютной адресации используется номер блока данных и абсолютный адрес тега
в блоке данных разделенные также точкой. Идентификатор адрес % (знак процента)
автоматически устанавливается как префикс для абсолютного адреса.
S7-1200/1500 предоставляет возможность доступа к блокам данных, который еще не
известны во время программирования. Для этого создается параметр блока типа
DB_ANY в интерфейсе части адресуемого блока. Имя или номер блока данных
передается в этом параметре во время исполнения. Для получения доступа к
внутренним тегам блока данных используется имя параметра блока типа DB_ANY и
абсолютный адрес тега разделенные точкой.

Примечание
Передача блока данных с резервированием памяти в параметр DB_ANY.
Невозможно передать блок данных с резервированием памяти в параметр блока
типа "DB_ANY".

Примечание
Абсолютная адресация тегов блока данных
Абсолютная адресация не возможна для следующих тегов:
• Теги в блоках с оптимизированным доступом.

• Теги следующих типов данных LWORD, LINT, ULINT, LREAL, LTIME, LTOD and LDT.
Лучшей практикой является использование символической адресации для этих тегов.

Массивы блоков данных


Массивы блоков данных - это особый тип глобальных блоков данных. Они содержать
массивы любого типа, например, массив пользовательских типов данных (UDT).
Адресация к элементам массива блоков данных осуществляется с помощью ключевого
слова "THIS". Затем указывается индекс в квадратных скобках. Индекс может быть, как
константой, так и тегом. Для индексации элементов массива допустимы константы и
теги целого типа с размером до 32 бит.
Скачано с https://forum.proasutp.com
STEP 7 Professional V13 SP1
Адресация переменных в глобальных блоках данных

Расширенные возможности для адресации блоков данных массива доступны в секции


«Move» карты задач «Instructions». Эти инструкции дают вам возможность, например,
косвенной адресации к имени блоков данных.

Синтаксис

"<DBname>".TagName

%<DBnumber>.absoluteAddress

#<DBAny_name>.%absoluteAddress

"<ArrayDBname".THIS[#i].<Component>.<ComponentElement>

SCL:

"<ArrayDBname"."THIS"[#i].<Component>.<ComponentElement>

Следующая таблица показывает возможные абсолютные адреса тегов в блоках данных:

Тип данных Абсолютный адрес Пример Описание

BOOL %DBn.DBXx.y %DB1.DBX1.0 Бит данных 1.0 в DB1


BYTE, CHAR, SINT, %DBn.DBBy %DB1.DBB1 Байт данных 1 в DB1
USINT

WORD, INT, UINT %DBn. DBWy %DB1.DBW1 Слово данных 1 в DB1


DWORD, DINT, UDINT, %DBn.DBDy %DB1.DBD1 Двойное слово
REAL, TIME данных 1 в DB1

Примеры
Приведенные ниже примеры показывают адресацию тегов в глабольных блоках данных:

Адресация Описание

"Motor".Value Символическая адресация тега "Value" в глобальном


блоке данных "Motor".

%DB1.DBX1.0 Абсолютная адресация тега "DBX1.0" в глобальном


блоке данных "DB1".
#MyDBAny.%DBX30.0 Абсолютная адресация тега "DBX30.0" в глобальном
блоке данных, который передается вовремя
выполнения через параметр "MyDBany".
Скачано с https://forum.proasutp.com
STEP 7 Professional V13 SP1
Адресация переменных в глобальных блоках данных

Адресация Описание

"MyARRAY_DB".THIS Адресация блока данных ARRAY. В качестве индекса


[#MyIndex].MyComponent.MyCompone массива используется тего "MyIndex". Элемент
ntElement массива имеет две дополнительных подструктуры:
"MyComponent" и "MyComponentElement".

Смотрите также
→ Использование типа данных DB_ANY
→ Адресация структурных переменных
→ Адресация областей тега благодаря slice-доступу
→ Основы косвенной адресации
→ Адресация экземпляра данных

Оценить