Программная_инженерия_лекция_14
.pdfТехнология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
ЛЕКЦИЯ 14. Функции, процедуры и функциональные блоки (продолжение)
14.1 Функции сравнения
Функции сравнения используются для сравнения двух или больше входных величин в языках FBD и LD. Выход OUT булевого типа является результатом сравнения. С помощью функций сравнения и входов EN
удобно управлять логикой работы программы. На рис. 14.1 показан пример использования функций сравнения для логического управления.
Рисунок 14.1 – Пример использования функций сравнения
При условии, что А = В = С, переменной Y будет присвоено значение 0. При условии, что D ≥ F, выполняется присваивание переменной Y значения суммы D + F.
14.2 Логические блоки
Логические функции AND, OR, XOR, NOT используются для логических операций преимущественно в языке FBD. Пример использования этих функций приведен на рис. 14.2.
Функция AND (логическое И) дает на выходе значение TRUE только в том случае, когда на всех входах будет значение TRUE. Функция OR
(логическое ИЛИ) дает на выходе значение TRUE в том случае, когда хотя бы на одном входе будет значение TRUE. Функция XOR (исключающее ИЛИ) дает на выходе значение TRUE только в том случае, только в том
1
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
случае, когда количество входов со значением TRUE будет нечетным.
Функция NOT дает на выходе инвертированное значение входа.
Рисунок 14.2 – Пример использования логических блоков Функции SET (установить в TRUE) и RESET (сбросить в FALSE) не
имеют входов (за исключением EN). При вызове функции SET выходной параметр устанавливается в логическую единицу. Аналогично, при вызове функции RESET выходной параметр устанавливается в логический нуль.
Функции FE и RE предназначены для выявления соответственно заднего (переход TRUE-FALSE) и переднего (переход FALSE-TRUE)
фронтов. В качестве входного параметра используются переменные типа
EBOOL.
Функциональные блоки SR и RS являются триггерами. В момент появления TRUE на входе S – на выходе устанавливается значение TRUE.
При появлении на входе R значения TRUE на выходе устанавливается значение FALSE. Если на входах S и R будет значение FALSE, то выход блока не изменяется. Блоки SR и RS триггеров отличаются приоритетом входов S и R при одновременном поступлении на них значения TRUE. У
триггера RS приоритетным является вход R, а у триггера SR – вход S.
Функция SHL (сдвиг влево) передвигает битовую комбинацию на входе IN на N позиций влево и заполняет оставшиеся биты справа нулями.
2
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
Например, следующая программа языка ST даст результат
2#0010_0000_1111_0000
a_word := SHL(2#0001_0010_0000_1111, 4).
Функция SHR (сдвиг вправо) работает аналогично функции SHL,
только сдвигает биты вправо и заполняет оставшиеся биты слева нулями.
14.3 Статистические функции
Статистические функции, как и в других языках программирования,
выполняют статистическую обработку данных.
Функции MIN и MAX предназначены для записи на их выход минимального или максимального значения среди всех входов.
Количество входов может быть до 32-х. Например, в программе на рис. 14.3 используется функция МАХ (блок 1), в которой выбрано 4 входа
(IN1 – IN4).
Функция MUX является мультиплексором. Один из входов IN0–IN30
подается на выход OUT в соответствии номером, который подается на вход К. Если К = 2, то OUT := IN2.
Функция AVE вычисляет среднее по формуле
YKi X i ,
Ki
где Ki – коэффициент i-го входного значения; Xi – i-ое входное значение.
Коэффициент и значение входного сигнала являются парами входных параметров, т.е. для трех пар сигналов нужно шесть входов.
Нечетные входы предназначены для ввода коэффициентов, четные – для ввода сигналов.
Функция LIMIT обеспечивает ограничения входной величины IN по минимуму (вход MN) и по максимуму (вход MX). Процедура LIMIT_IND
работает аналогично LIMIT, но имеет дополнительные выходы Y_MAX и Y_MIN, которые устанавливаются в TRUE при достижении соответственно максимального и минимального значений на входе.
3
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
Рисунок 14.3 – Пример использования статистических функций.
14. 4 Таймеры и счетчики
Таймеры и счетчики в UNITY PRO реализованы в виде функциональных блоков и требуют предварительного создания экземпляров.
Таймеры TON, TOF и TP (рис. 14.4) имеют входы IN – команда запуска таймера, PT – установка времени таймера типа TIME, выход таймера Q типа BOOL и текущее значение таймера ET типа TIME.
4
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
Рисунок 14.3 – Диаграммы работы таймеров
5
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
6
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
7
Технология программирования микропроцессорных систем.
© О.А. Кудин. Лицензия CC-BY-NC-ND
8