Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программная_инженерия_лекция_14

.pdf
Скачиваний:
73
Добавлен:
15.02.2015
Размер:
1.5 Mб
Скачать

Технология программирования микропроцессорных систем.

© О.А. Кудин. Лицензия 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