18. Функции блоков
18 - 22
Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
Использование полной адресации данных
Каждый раз, когда при организации доступа к данным используется
полная адресация, редактор сначала открывает блок данных с помощью
операции OPN DB, затем обеспечивает доступ к адресованным данным.
При этом каждый раз производится обновление (переписывание)
содержимого DB-регистра. Это же происходит также при инициализации
параметров блоков с использованием полной адресации данных.
Операция доступа к параметрам блока
Содержимое DB-регистра также меняется при операциях доступа к
следующим параметрам блоков: для функций, для все х параметров
блоков сложных типов и функциональных блоков, вхо дных/вы ходных
параметров сложных типов данных.
Операция вызова блока CALL FB
Перед тем как выполнить вызов блока, инструкци я CALL FB инициирует
сохранение номера текущего экземплярного блока данных в DB-регистре
(с помощью обмена содержимого в регистрах блоков данных) и открывает
экземплярный блок данных для вызванного функционального блока.
Таким образом, связанный экземплярный блок да нных всегда открыт в
вызванном функциональном блоке. Последующие вызовы блока с
помощью инструкции CALL FB вновь изменяют содержимое DB-регистра
так, что текущий экземплярный блок данны х снова доступен для
вызванного функционального блока. Таким образом инструкции CALL FB
изменяют содержимое DB-регистра.
Значение DI-регистра для функциональных блоков
Для функциональных блоков данных DI-регистр всегда содержит номер
соответствующего экземплярного блока данных. Все операции доступа к
параметрам блока или к статистическим локальным данным выполняются
с помощью DI-регистра и также посредством адресного регистра AR2 в
случае "мультиэкземплярных" функциональных блоков.
Примечание: необходимо учитывать указанное выше постоянное
назначение DI-регистра, если Вы изменяете содержимое DI-регистра
посредством операций CDB или OPN DI.
Если, к примеру, Вы желаете использовать оба регистра блоков данных
одновременно для замены данных, то Вы должны сначала сохранить
содержимое регистров, чтобы в последствии восстановить эти значения.
Пример, представленный на рис. 18.6, показывает применение
соответствующего приема программирования.
Внесение изменений в назначения блоков данных на поздних стадиях
На вкладке "Blocks" ("Блоки") в окне свойств для папки автономных
объектов Blocks Вы можете определить, какой из способов адресации
данных будет иметь преимущество: абсолютная или символьная - при
выполнении изменений в назначениях блока данны х для уже сохраненных
кодовых блоков.
По умолчанию действует установка "Absolute address has priority"
("Абсолютная адресация имеет приоритет") (такие же параметры, как и в
предыдущих версиях STEP 7). Такая, принятая по умолчанию, установка
означает, что при изменении в разделе объявлений в блоке, абсолютный
адрес сохраняется в программе, а символьный адрес соответственно