Программирование блоков
Программирование в STEP 7 Lite V2.0
A5E00142284-01
6-101
!
Опасность
Опасность нанесения существенного имущественного ущерба или тяжких
телесных повреждений персоналу:
1. Во время использования CALL FC, CALL FB, CALL multiple instance
2. При обращении к DB с использованием абсолютной адресации
(например, DB20.DBW10)
3. При обращении к переменным составных типов данных
Возможно, что содержимое регистров DB (DB и DI), регистров адреса (AR1,
AR2) и аккумуляторов (ACCU1, ACCU2) изменилось.
Также, не допускается использование бита RLO слово состояния, в качестве
дополнительного (неявного) параметра, при вызове FB или FC.
При использовании методов программирования, описанных выше, Вы
должны убедиться в правильности содержимого, которое Вы используете, в
противном случае могут возникнуть ошибки.
Сохранение корректных данных
Содержимое регистра DB может создавать критические ситуации, если
при обращении к данным, с помощью абсолютной адресации,
используется сокращенная форма. Например, если Вы предполагаете,
что открыт DB20 (и именно его номер хранится в регистре DB), то Вы
можете использовать адресацию DBX0.2, чтобы обратиться к данным
бита 2 байта 0 блока DB, адрес которого хранится в регистре DB (другими
словами блока DB20). Однако, если регистр DB содержит номер другого
блока DB, то Вы обратитесь по ошибочному адресу.
Ошибок доступа к данны м регистра DB можно избежать, используя
следующие способы адресации:
• символьная адресация
• полная абсолютная адресация (например, DB20.DBX0.2)
При использовании этих методов а дресации STEP 7 Lite автоматически
откроет нужный DB. Если Вы используете регистр AR1 для косвенной
адресации, то необходимо следить, чтобы в AR1 всегда был загружен
требуемый адрес.
Ситуации, при кот орых изменяется содержимое регистров
Работа с регистрами адреса для косвенной адресации возможна только в
STL. Другие языки не поддерживают косвенное обращение к регистрам
адреса.
Изменение компилятором регистра DB должно учитываться во всех
языках программирования для того, чтобы при вызове блоков
передавались корректные параметры.