Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STEP7_V53_Programming_r.pdf
Скачиваний:
3
Добавлен:
29.05.2025
Размер:
5.18 Mб
Скачать

Отображение справочных данных

Правила открытия без конфликтов

Метки времени интерфейса FB/SFB и соответствующего экземплярного блока данных должны совпадать.

Последовательность действий при возникновении конфликта меток времени

Если Вы изменяете интерфейс FB, то метка времени интерфейса этого FB обновляется. Когда Вы открываете соответствующий экземплярный блок данных, то появляется сообщение о конфликте меток времени, так как метки времени экземплярного блока данных и FB больше не совпадают. В разделе описаний блока данных интерфейс отображается с символами, сгенерированными компилятором (псевдосимволы). Экземплярный блок данных теперь можно только просматривать.

Для устранения конфликтов меток времени этого типа Вы должны создать экземплярный блок данных для измененного FB снова.

15.6Метки времени в UDT и блоках данных, полученных из UDT

Типы данных, определенные пользователем (UDT), могут быть использованы, например, для создания нескольких блоков данных с одинаковой структурой.

Метка времени кода

Метка времени кода обновляется при каждом изменении.

Метка времени интерфейса

Метка времени интерфейса обновляется, когда изменяется описание интерфейса (изменения типов данных или начальных значений, новые параметры).

Метка времени интерфейса UDT обновляется также при компиляции исходного ASCII-файла.

Правила открытия без конфликтов

Метка времени интерфейса типа данных, определенного пользователем, должна быть старше, чем метка времени интерфейса в логических блоках, в которых этот тип данных используется.

Метка времени интерфейса типа данных, определенного пользователем, должна быть идентична метке времени блока данных, полученного из

UDT.

Метка времени интерфейса типа данных, определенного пользователем, должна быть младше, чем метка времени вторичного UDT.

Программирование с помощью STEP 7 v5.3

15-5

A5E00261405-01

Error! Style not defined.

Последовательность действий при возникновении конфликта меток времени

Если Вы изменяете определение UDT, который используется в блоке данных, функции, функциональном блоке или в другом определении UDT, STEP 7 сообщает о конфликте меток времени при открытии блока.

Компонент UDT показывается в виде расширенной структуры. Все имена переменных заменяются значениями, предустановленными системой.

15.7Исправление интерфейсов в функциях, функциональных блоках или UDT

Если Вы хотите исправить интерфейс в FB, FC, или UDT, проделайте следующее чтобы избежать конфликтов меток времени:

1.Сгенерируйте исходный файл STL из блока, который Вы хотите изменить и все непрямые или прямые справочные блоки.

2.Сохраните изменения в сгенерированном исходном файле.

3.Скомпилируйте измененный исходный файл обратно в блоки.

Вы можете сохранить/загрузить изменения интерфейса.

15.8Предотвращение ошибок при вызове блоков

STEP 7 переписывает данные в регистр DB

STEP 7 изменяет регистр S7-300/S7-400 CPU, когда выполняются различные инструкции. Содержание регистров DB и DI, например, подкачивается, когда Вы вызываете FB. Это позволяет экземпляру DB вызванного FB открываться без потери адресов предыдущего экземпляра DB.

Если Вы работаете с абсолютными адресами, в регистрах могут появляться ошибки. В таком случае, адреса в регистре AR1 (адресный регистр 1) и в регистре DB будут переписаны. Это значит, что Вы читаете или записываете неправильные адреса.

!Опасно

Опасность аварии возникает когда:

1.Используются CALL FC, CALL FB, CALL мультиэкземпляры

2.Доступный DB использует абсолютные адреса (например DB20.DBW10)

3.Переменные сложных типов данных

Возможно, что содержание регистров DB (DB и DI), адресных регистров (AR1, AR2), и аккумуляторов (ACCU1, ACCU2) можно изменить.

Дополнительно, Вы не можете использовать бит RLO слова состояния как дополнительный параметр, когда Вы вызываете FB или FC.

Когда используете технику программирования упомянутую выше, Вы должны убедиться, что Вы сохранили содержимое; в противном случае могут появиться.

15-6

Программирование с помощью STEP 7 v5.3

A5E00261405-01

Отображение справочных данных

Сохранение правильных данных

Содержимое регистра DB может стать причиной критической ситуации, если у Вас есть доступ к абсолютным адресам данных, используемых в формате аббревиатур. Если, например, Вы допускаете, что DB20 открыт (и что его номер сохранен в регистре DB), Вы можете определить DBX0.2 для доступа к данным в бите 2 бита 0 DB, чей адрес введен в регистр DB (другими словами DB20). Если, однако, регистр DB содержит другой номер DB, Вы получите неверные данные.

Вы можете избежать ошибок, когда доступ к данным регистра DB использует следующие методы для адресации данных:

Используйте символьные адреса

Используйте полный абсолютный адрес (например, DB20.DBX0.2)

Если Вы используете эти методы адресации, STEP 7 автоматически открывает правильный DB. Если Вы используете регистр AR1 для косвенной адресации, Вы всегда должны читать правильный адрес в AR1.

Программирование с помощью STEP 7 v5.3

15-7

A5E00261405-01

Error! Style not defined.

Ситуации, в которых изменяются регистры

Манипулирование адресными регистрами для косвенной адресации доступно только в STL. Другие языки не поддерживают косвенный доступ к адресным регистрам.

Адаптация регистра DB компилятором должна выполняться в соответствии со всеми языками программирования, чтобы убедиться в правильности передачи данных при вызове блоков.

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

Ситуация

Описание

С актуальными

• Вы единожды назначаете актуальные параметры блоку из DB

параметрами из DB

(например, DB20.DBX0.2) STEP 7 открывает DB (DB20) и

 

адаптирует содержимое регистра DB. Затем программа работает

 

с адаптированным DB после вызова блока.

Когда вызванные блоки

• После вызова блока из FC, который передает компоненту

вместе с высшими типами

формального параметра высшего типа данных (строка, массив,

данных

структура или UDT) вызванному блоку, содержимое регистров

 

AR1 и DB вызванного блока меняется.

 

• Это же применяется к вызову в FB , если параметр вызван из

 

области VAR_IN_OUT.

Когда доступны

• Когда при доступе к FB компонент формального параметра

компоненты высшего типа

высшего типа данных в области VAR_IN_OUT (строка, массив,

данных

структура или UDT), STEP 7 использует адресный регистр AR1 и

 

DB. Это значит, что содержимое обоих регистров изменено.

 

• Когда при доступе к FC компонент формального параметра

 

высшего типа данных в области VAR_IN_OUT (строка, массив,

 

структура или UDT), STEP 7 использует адресный регистр AR1 и

 

DB. Это значит, что содержимое обоих регистров изменено.

Замечание

Когда FB вызван из блока версии 1, актуальный параметр для первого параметра Boolean IN или IN_OUT передается неправильно, если цепь вычисления RLO команда не завершена перед вызовом. Возникает логическая комбинация с существующим RLO.

Когда вызван FB (простой или мультиэкземпляр), адресный регистр AR2 также переписывается.

Если адресный регистр AR2 изменен в FB, нет гарантии, что FB будет выполняться правильно.

Если полный абсолютный адрес DB не передается параметру ANY, указатель ANY не получает номер DB открытого DB. Вместо этого он всегда получает номер 0.

15-8

Программирование с помощью STEP 7 v5.3

A5E00261405-01