> IN1 больше IN2;
< IN1 меньше IN2;
>= IN1 больше или равно IN2;
<= IN1 меньше или равно IN2.
Если условие сравнения выполняется, то RLO получает значение "1". Он сопрягается с результатами опроса последующих логических операций по схеме И, если они находятся в последовательной цепи и по схеме ИЛИ в случае параллельной цепи.
Поразрядные логические инструкции над словами
комбинируют пары слов (16 бит) или двойных слов (32 бита) побитно в соответствии с правилами булевой логики (рис. 7.8).
Рис. 7.8. Операции цифровой логики
Для выполнения логических операций над словами предоставляются следующие инструкции:
•WAND_W - поразрядное И над словами
•WOR_W - поразрядное ИЛИ над словами
•WXOR_W - поразрядное исключающее ИЛИ над слова-
ми
85
•WAND_DW - поразрядное И над двойными словами
•WOR_DW - поразрядное ИЛИ над двойными словами
•WXOR_DW - поразрядное исключающее ИЛИ над двойными словами
Операция выполняет над величинами, указанными на входах IN1и IN2, поразрядное “умножение” в соответствии с таблицей истинности для операции AND. Результат операции сохраняется по адресу, указанному на выходе OUT. Инструкция выполняется, когда EN = 1.
Математические инструкции
Система команд S7-300/400 поддерживает ряд математических функций (рис. 7.9).
Рис. 7.9. Основные математические функции
Все команды имеют аналогичный формат:
EN - команда выполняется, если на входе разрешения EN
RLO=1 .
ENO - если результат находится за пределами допустимого диапазона для соответствующего типа данных, биты пе-
86
реполнения OV и сохраненного переполнения OS устанавливаются в единицу, а на выходе разрешения ENO=0. Это предотвращает от выполнения последующие операции связанные с выходом ENO.
IN1, IN2 - величина на входе IN1 читается как первый операнд, а величина на входе IN2 как второй.
OUT - результат математической операции сохраняется по адресу, указанному на выходе OUT.
Используя математические инструкции с целыми числами, Вы можете выполнять операции с двумя числами типа
Integer (16 и 32 битовыми):
•ADD_I - сложение целых чисел
•SUB_I - вычитание целых чисел
•MUL_I - умножение целых чисел
•DIV_I - деление целых чисел
•ADD_DI - сложение двойных целых чисел
•SUB_DI - вычитание двойных целых чисел
•MUL_DI - умножение двойных целых чисел
•DIV_DI - деление двойных целых чисел
•MOD_DI - получение остатка от деления двойных целых чисел
Вы можете использовать математические инструкции с плавающей точкой для выполнения следующих математических операций, использующих два 32–битных числа с плавающей точкой (вещественный тип данных REAL) в формате
IEEE:
•ADD_R – сложение;
•SUB_R – вычитание;
•MUL_R – умножение;
•DIV_R – деление;
•ABS - вычисление абсолютного значения числа с плавающей точкой;
•SQR - вычисление квадрата и квадратного корня (SQRT) числа с плавающей точкой;
87
•LN - вычисление натурального логарифма числа с плавающей точкой;
•EXP - вычисление экспоненты числа с плавающей точкой по основанию e (е = 2.71828...);
•Вычисление следующих тригонометрических функций угла, представленного в виде 32–битного числа с плавающей точкой:
- синуса числа с плавающей точкой (SIN) и арксинуса числа с плавающей точкой (ASIN);
- косинуса числа с плавающей точкой (COS) и арккосинуса числа с плавающей точкой (ACOS);
- тангенса числа с плавающей точкой (TAN) и арктангенса числа с плавающей точкой (ATAN).
Инструкции сдвига
С помощью инструкций сдвига Вы можете побитно сдвигать содержимое входа IN влево или вправо (рис. 7.10).
Рис. 7.10. Операции сдвига (слово / двойное слово)
Число, задаваемое Вами для входного параметра N, показывает, на сколько битов должен производиться сдвиг. Разря-
88
ды, освобождающиеся вследствие операции сдвига, заполняются нулями или состоянием знакового бита (”0” в случае положительного числа, ”1” в случае отрицательного числа). Бит, сдвигаемый последним, загружается в бит СС1 слова состояния. Биты CC0 и OV сбрасываются в “0”. Вы можете оценить бит CC1 слова состояния с помощью операций перехода. Вы можете использовать следующие инструкции сдвига:
•SHR_I - сдвиг вправо числа типа Integer
•SHR_DI - сдвиг вправо числа типа Double Integer
•SHL_W - сдвиг слова влево
•SHR_W - сдвиг слова вправо
•SHL_DW - сдвиг двойного слова влево
•SHR_DW - сдвиг двойного слова вправо
Сдвиг на n битов влево умножает содержимое входа IN на 2n; сдвиг на n битов вправо делит содержимое входа IN на
2n (рис. 7.11).
Рис. 7.11. Сдвиг вправо числа со знаком
SHR_I / SSI - операция Shift Right Signed Integer (сдвиг вправо со знаком) сдвигает вправо только ACCU1-L (биты 0 -
89