Краткий Обзор
Многие команды FUP работают с одним ли несколькими операндами. Операнд определяет константу или адрес, по которому команда находит переменную, которую она использует для выполнения логической операции. Этот адрес может быть битом, байтом, словом или двойным словом. Возможными операндами являются, например:
• константа, значение таймера или счетчика или строка символов ASCII
• бит в слове состояния программируемого контроллера
• блок данных и адрес внутри области блока данных
Непосредственная и прямая адресация
В Вашем распоряжении имеются следующие виды адресации:
• Непосредственная адресация (задание константы в качестве операнда)
• Прямая адресация (задание переменной в качестве операнда)
На рис. ниже показан пример непосредственной и прямой адресации. Функция блока состоит в том, чтобы сравнить два входных параметра (в данном случае два 16-битовых целых числа), чтобы установить, меньше или равен первый вход второму. Константа 50 вводится как входной параметр IN1. Меркерное слово MW200, адрес в памяти, вводится как входной параметр IN2. Так как в этом примере константа 50 является фактическим значением, с которым IN1 блока будет работать, то 50 является непосредственным адресом блока команды. Так как MW200 указывает на адрес в памяти, по которому находится значение, с которым должен работать IN2 блока, MW200 является прямым адресом. MW200 - это адрес, а не само фактическое значение.

Виды адресов
в качестве адреса команды FUP может использоваться один из следующих элементов:
• бит, состояние сигнала которого должно быть опрошено
• бит, которому присваивается состояние сигнала цепи логических операций
• бит, которому присваивается результат логической операции (RLO)
• бит, который должен быть установлен или сброшен
• номер счетчика, который должен быть увеличен или уменьшен
• номер таймера, который должен быть использован
• меркер фронта, сохраняющий предыдущее значение RLO
• меркер фронта, сохраняющий предыдущее состояние сигнала другого адреса
• байт, слово или двойное слово, содержащее значение, с которым должен работать элемент и блок FUP
• номер блока данных (DB или DI), который должен быть открыт или создан
• номер подлежащей вызову функции (FC), системной функции (SFC), функционального блока (FB) или системного функционального блока (SFB)
• метка перехода, на которую нужно перейти
Идентификатор адреса
Переменные, используемые в качестве операндов, состоят из идентификатора адреса и адреса внутри области памяти, указываемой идентификатором адреса. Идентификатор адреса может быть одного из следующих двух основных типов:
• Идентификатор адреса, задающий следующие два объекта данных:
- область памяти, в которой операция находит значение (объект данных), с которым она выполняет логическую операцию (например, ”I” для отображения процесса на входах, см. табл. 5–1).
- размер значения (объекта данных), с которым команда должна выполнить логическую операцию (напр., B для байта, W для слова и D для двойного слова, см. табл. 5–1).
• Идентификатор адреса, указывающий область памяти, но не размер объекта данных в этой области (например, идентификатор для области Т (таймеры), C (счетчики) или DB или DI (блок данных) и номер таймера, счетчика или блока данных, см. табл. 5–1).
Указатель идентифицирует адрес переменной. Указатель содержит адрес вместо значения. При назначении фактического параметра для параметра типа ”Pointer” (“Указатель”) Вы предоставляете адрес в памяти. В STEP 7 Вы можете ввести указатель или в формате указателя, или просто как адрес (например, М 50.0). Следующий пример иллюстрирует формат указателя для обращения к данным, начинающимся в М 50.0.
P#M50.0
Работа со словам или двойными словами как объектами данных
Если В работаете с командой, идентификатор адреса которой указывает на область памяти Вашего программируемого контроллера и на объект данных, который по размеру является словом или двойным словом, помните, что к адресу в памяти всегда обращаются как к байтовому адресу. Этот байтовый адрес является наименьшим номером байта или номером старшего байта внутри слова или двойного слова. Адрес в команде, показанной на рис. ниже, например, указывает на четыре последовательныx байта в области памяти М, начиная с байта 10 (МВ 10) до байта 13 (МВ 13).

На рис. ниже, показаны объекты данных следующих размеров:
• двойное слово: меркерное двойное слово MD10
• слово: меркерное слово MW10, MW11 и MW13
• байт: меркерные байты MB10, MB11, MB12 и MB13
Если Вы используете абсолютные операнды размером в слово или двойное слово, то убедитесь, что Вы избежали таких назначений байтов, при которых они перекрываются.

<--Предыдущая статья | Следующая статья--> |