Последовательностные дискретные автоматы
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ГЛАВА 2. Последовательностные дискретные автоматы
Рассмотрим последовательностный дискретный автомат. Все входные и выходные сигналы автомата
бинарные (значение 0 или 1).
В отличие от комбинационного автомата здесь нет однозначной зависимости:
На
влияют не только текущие значения
, но и те значения, которые входные сигналы
принимали ранее (в какой последовательности они изменялись). Также
значений, которые он принимал ранее.
может зависеть от своих
Поэтому последовательностный автомат нельзя описать таблицей истинности.
2.1. Простейшие последовательностные автоматы – триггер и таймер
Возьмём два логических элемента ИЛИ-НЕ и соединим их последовательно:
Пока ещё это комбинационный автомат. Но если охватить его обратной связью, автомат станет
последовательностным.
После преобразований получим:
Сигнал
зависит сам от себя. Точнее текущее значение
зависит от предыдущего значения .
Получили триггер – простейший последовательностный автомат с двумя входами и одним выходом.
Входной сигнал
При выходном сигнале
– включающий сигнал триггера. Входной сигнал
триггер выключен. При выходном сигнале
– отключающий сигнал триггера.
триггер включен.
Построим временные диаграммы работы триггера.
У рассматриваемого триггера отключение приоритетнее включения. При
выключен.
триггер будет
Существует также триггер с приоритетом включения:
Его отличие в том, что при
триггер будет включен.
Ситуация
для триггера является некорректной (его одновременно пытаются включить и
выключить). Её возникновение нежелательно.
В дальнейшем будем использовать функцию триггера:
Первый аргумент функции RS – это условие включения триггера, а второй – условие отключения.
Например, триггер описывается функцией:
Такой триггер включится при условии, что
при условии, что
равны единице (хотя бы один). Триггер отключится
равны 1.
Таймер имеет один вход и один выход. Таймер может быть двух видов.
Таймер задержки включения – выполняет задержку включения выходного сигнала относительно
включения входного сигнала.
Функцию таймера задержки включения будем обозначать так:
где Td – время задержки в секундах.
Входной сигнал должен оставаться равным 1 во время отсчёта времени задержки. Если он станет
равным 0, выходной сигнал не включится.
Таймер задержки отключения – выполняет задержку отключения выходного сигнала относительно
отключения входного сигнала.
Функцию таймера задержки отключения будем обозначать так:
где Td – время задержки в секундах.
Входной сигнал должен оставаться равным 0 во время отсчёта времени задержки. Если он станет
равным 1, выходной сигнал не отключится.
2.2. Синтез последовательностных автоматов по методу циклограмм
Понятие такта работы автомата. Такт – отрезок времени, в течение которого все сигналы автомата
(входные, выходные, промежуточные) имеют неизменные значения. Изменение какого-то сигнала означает
переход от одного такта к другому.
Будем рассматривать только автоматы, которые работает циклически, т.е. все сигналы будут
повторяться через определённое число тактов, образующих один цикл. Все последующие циклы будут
точно такими же. Достаточно рассмотреть работу автомата только на одном цикле.
Циклограмма – совокупность временных диаграмм всех сигналов автомата в пределах одного цикла с
указанием влияния одних переменных на другие.
Все такты на циклограмме обычно показываются одинаковой длины, независимо от времени,
которое длится такт.
Пример циклограммы:
Входные сигналы автомата: a,b. Выходные сигналы автомата: x,c.
Черная горизонтальная линия обозначает, что данный сигнал = 1, отсутствие линии – что сигнал = 0.
Вертикальная линия со стрелкой показывает влияние одной переменной на другую.
Что показано на этой циклограмме:
Начальный такт 0-ой, все сигналы выключены. На 1-ом такте включается сигнал a, что вызывает
включение на 2-ом такте сигнала c. На 3-ем такте отключается сигнал a, что приводит к включению на 4-ом
такте сигнала x. На 5-ом такте включается сигнал b, что приводит к отключению на 6-ом такте сигнала c. На
7-ом такте отключается сигнал b, что приводит к отключению на 0-ом такте сигнала x. Цикл окончен.
Соглашения для циклограмм:
· При переходе к следующему такту может измениться только один входной сигнал. Входные сигналы
не могут изменяться одновременно.
·
При переходе к следующему такту может измениться несколько выходных сигналов одновременно.
Постановка задачи синтеза автомата: найти выражения для всех выходных сигналов автомата (в
которых можно использовать логические операции, а также функции триггеров и таймеров).
Некоторые важные термины (применяемые к выходным сигналам автомата):
Период включения – непрерывная последовательность тактов, на которых переменная равна единице.
Период отключения – непрерывная последовательность тактов, на которых переменная равна нулю.
Включающий такт – такт предшествующий периоду включения.
Отключающий такт – такт предшествующий периоду отключения.
Включающий период – период, состоящий из включающего такта и периода включения без
отключающего такта.
Отключающий период – период, состоящий из отключающего такта и периода отключения без
включающего такта.
Тот же пример:
Для сигнала x:
·
Период включения – такты 4,5,6,7.
·
Период отключения – такты 0,1,2,3.
·
Включающий такт – такт 3.
·
Отключающий такт – такт 7.
·
Включающий период – такты 3,4,5,6.
·
Отключающий период – такты 7,0,1,2.
Традиционный метод циклограмм
(без применения готовых функций триггеров)
Пусть мы находим выражение для переменной x. Для этого необходимо:
Записать условие включения для x:
равной единице во включающем такте.
– это такая переменная или выражение, которая становится
Записать условие отключения для x:
равной единице в отключающем такте.
– это такая переменная или выражение, которая становится
Из условия отключения получить условие неотключения:
.
Выполнить первую проверку – остаётся ли условие включения равным единице на всём включающем
периоде.
Если первая проверка не выполняется, то модифицируем условие включения:
где
– переменная (выражение), равная 1, на тех тактах включающего периода, где
, и равная 0
во включающем такте. Данным условиям удовлетворяет сама переменная x. Поэтому можем принять:
Если первая проверка выполняется, то условие включения остаётся без изменения:
Выполнить вторую проверку – остаётся ли условие неотключения равным единице на всём
включающем периоде.
Если вторая проверка не выполняется, то модифицируем условие неотключения:
где
– переменная (выражение), равная единице, на тех тактах включающего периода, где
равная нулю в отключающем такте.
,и
Если вторая проверка выполняется, то условие неотключения остаётся без изменения:
Предварительно составить выражение для x:
.
Выполнить третью проверку – не возникает ли ложных включений во время отключающего периода.
Ложное включение возникнет, если на каком-либо такте отключающего периода предварительное
выражение даст единицу.
Если ложных включений нет, то предварительное выражение принимается за окончательное. Если
ложные включения есть, то дополняем имеющееся предварительное выражение:
,
где
– переменная (выражение), равная единице на всём включающем периоде и равная нулю на тех
тактах отключающего периода, где обнаружены ложные включения.
Пример 1
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Записываем условие включения:
.
Записываем условие неотключения:
.
К включающему периоду относятся такты 2 и 3. В течение включающего периода условие включения и
условие неотключения остаются равными единице. Следовательно, первая и вторая проверка выполняются.
К отключающему периоду относятся такты 4, 5, 0. Предварительное выражение
нигде на
отключающем периоде не становится равным единице. Таким образом, третья проверка тоже выполняется.
Окончательный вид выражения:
Пример 2
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Записываем условие включения:
Записываем условие неотключения:
.
.
Включающий период – такты 1,2,3.
Условие включения становится равным 0 на такте 3. Первая проверка не выполняется. Модифицируем
условие включения:
Условие неотключения остаётся = 1 на всём включающем периоде. Вторая проверка выполняется.
Предварительное выражение:
Полученное выражение является выражением для триггера. Можно использовать и другое выражение
для триггера:
В данном случае без разницы, какое из этих выражений использовать. Они оба верны, т.к. нет ситуации,
когда одновременно
и
.
На отключающем периоде (такты 4,5,0) ложных включений нет. Третья проверка выполняется.
Пример 3
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Записываем условие включения:
.
Записываем условие неотключения:
.
Включающий период – такты 2,3,4.
Первая проверка выполняется.
Вторая проверка не выполняется – условие неотключения равно нулю на тактах 2,3.
Чтобы изменить условие неотключения вводим дополнительную переменную c.
Тактов стало больше. Теперь включающий период для x это такты 3,4,5,6. Записываем новое условие
неотключения:
. Вторая проверка теперь выполняется.
Предварительное выражение:
На отключающем периоде для x (такты 7,0,1,2) ложных включений нет. Выражение для x получено.
Теперь находим выражение для новой переменной c. Здесь всё аналогично примеру 2.
Пример 4
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Записываем условие включения:
Записываем условие неотключения:
.
.
Включающий период – такты 2,3. Первая и вторая проверка выполняются.
Предварительное выражение:
На такте 0 происходит ложное включение x. Третья проверка не выполняется. Вводим новую
переменную с, которая позволит избавится от ложного включения:
Умножим выражение для x на инверсию с. Ложное включение на 0-ом такте исчезнет. На включающем
периоде = 1 и не мешает работе.
Находим выражение для новой переменной c.
Составить самостоятельно.
Пример 5
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Перед нами частный случай, для которого решение очевидно:
Пример 6
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Решение также можно увидеть сразу:
Пример 7
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Условие включения:
.
Условие неотключения:
.
Первая проверка не выполняется: на такте 5:
Вторая проверка не выполняется: на такте 3:
Модифицируем условие включения с помощью x, а условие неотключения с помощью :
Ложных включений на отключающем периоде нет. Полученное выражение можно считать
окончательным.
Пример 8
Дана циклограмма автомата (a,b,с – входные сигналы, x – выходной сигнал). Найти выражение для x.
Условие включения:
.
Условие неотключения:
.
Первая проверка выполняется.
Вторая проверка не выполняется:
на такте 5.
Для изменения условия неотключения используем c.
Предварительное выражение:
Третья проверка не выполняется – ложное включение на 0-ом такте.
Вводим новую переменную
Окончательно получим для
Получаем выражение для новой переменной d.
Условие включения:
Условие неотключения:
.
.
Первая проверка не выполняется. Вторая проверка выполняется. Изменяем условие включения и
записываем выражение для d.
Третья проверка не выполняется – есть ложное включение на такте 6.
Изменим условие включения d, чтобы ложного включения не возникало. Окончательно получим:
Пример 9
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Условие включения:
Условие неотключения:
.
Первая проверка выполняется.
Вторая проверка не выполняется – на тактах 1,2:
Вводим новую переменную с:
Наложение диаграмм c и b закрывает включающий период x. Поэтому можем записать:
Находим выражение для c:
Условие включения:
Условие неотключения:
Первая и вторая проверки выполняются.
Предварительное выражение для c:
Третья проверка для c не выполняется – ложное включение на 7 такте.
Вводим новую переменную d.
Устраняем ложное включение для c.
Находим выражение для d:
Условие включения:
Условие неотключения:
Первая проверка не выполняется, вторая проверка выполняется.
Ложных включений d нет.
Применение функций триггеров
Пример 10
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Сигнал x может быть получен с помощью функции триггера:
Правила для выбора условий включения и отключения триггера.
Условие включения – должно быть равно 1 на включающем такте и должно быть равно 0 на всём
отключающем периоде (условие отсутствия ложных включений).
Условие отключения – должно быть равно 1 на отключающем такте и должно быть равно 0 на всём
включающем периоде (условие отсутствия ложных отключений).
Пример 11
Дана циклограмма автомата (a,b – входные сигналы, x – выходной сигнал). Найти выражение для x.
Применяем функцию триггера:
Пример 12
c.
Дана циклограмма автомата (a,b – входные сигналы, x,c – выходные сигналы). Найти выражения для x и
Применяем функции триггера:
Пример 13
Дана циклограмма автомата (a,b – входные сигналы, x,c,d – выходные сигналы). Найти выражения для x,
c и d.
Решить задачу самостоятельно, применяя функции триггеров.
Пример решения практической задачи
Разработать алгоритм управления автоматической линии покраски изделий.
Схема линии:
· Оператор привозит тележку с изделием в зону установки, закрепляет изделие на тросе подъёмного
крана и нажимает кнопку ПУСК.
·
Кран поднимает изделие в зону перемещения.
·
Тележка перемещается и останавливается над зоной покраски.
·
Кран опускает изделие в зону покраски.
·
Включаются краскопульты. Идёт окрашивание изделия в течение 1 минуты.
·
Кран поднимает изделие в зону перемещения.
·
Тележка перемещается и останавливается над зоной сушки.
·
Кран опускает изделие в зону сушки.
·
Включаются вентиляторы. Идёт сушка изделия в течение 3 минут.
·
Кран поднимает изделие в зону перемещения.
·
Тележка перемещается и останавливается над зоной установки.
·
Кран опускает изделие в зону установки на тележку.
·
Цикл окончен. Оператор отцепляет изделие от троса и увозит тележку с готовым изделием.
Рассмотрим автомат, управляющий линией.
Входные сигналы автомата a…f – это бинарные сигналы о нахождении изделия в соответствующей
зоне (1 – есть, 0 – нет).
a – сигнал нахождения изделия в зоне установки.
b – сигнал нахождения изделия в зоне перемещения над зоной установки.
c – сигнал нахождения изделия в зоне перемещения над зоной покраски.
d – сигнал нахождения изделия в зоне покраски.
e – сигнал нахождения изделия в зоне перемещения над зоной сушки.
f – сигнал нахождения изделия в зоне сушки.
Входной сигнал g – сигнал от кнопки ПУСК.
Выходные сигналы автомата это сигналы управления исполнительными механизмами (0 – выключен,
1 – включен).
x – сигнал включения механизма крана на подъём.
y – сигнал включения механизма крана на спуск.
z – сигнал включения механизма тележки на движение вправо.
u – сигнал включения механизма тележки на движение влево.
v – сигнал включения краскопультов.
r – сигнал включения вентиляторов.
Строим циклограмму для всех сигналов. Дополнительно к внешним входным и выходным сигналам
будем использовать внутренние сигналы.
t1 – сигнал первого таймера (отсчитывающего время 1 мин).
t2 – сигнал второго таймера (отсчитывающего время 3 мин).
h – сигнал первой фазы цикла (от начала движения до попадания в зону покраски).
m – сигнал второй фазы цикла (от начала движения из зоны покраски до попадания в зону сушки).
Первый таймер t1 запускается от сигнала включения краскопультов.
После включения краскопультов (v=1) начинается выдержка времени (такт 12). Через 1 минуту
включается сигнал таймера t1, что приводит к отключению сигнала v, что в свою очередь приводит к
отключению сигнала таймера t1.
Второй таймер t2 запускается от сигнала включения вентиляторов.
После включения вентиляторов (r=1) начинается выдержка времени (такт 24). Через 3 минуты
включается сигнал таймера t2, что приводит к отключению сигнала r, что в свою очередь приводит к
отключению сигнала таймера t2.
Получаем выражение для сигнала x. Сигнал x имеет три периода включения. Каждый из них
реализуется своей функцией триггера.
Ложных включений от сигналов
нет. Ложных отключений от сигналов
также нет. Однако,
кнопка ПУСК может быть случайно нажата, когда изделие не находится в зоне установки. Для
предотвращения ложного включения x при случайном нажатии кнопки изменим условие включения первого
триггера на
. Кнопка будет срабатывать только в зоне установки.
Получаем выражение для сигнала y. Сигнал y имеет три периода включения. Каждый из них
реализуется своей функцией триггера.
Проверяем ложные включения. Сигнал
даёт ложное включение на тактах 17 и 32. Поэтому изменяем
условие включения первого триггера на
. Сигнал e даёт ложное включение на такте 29. Поэтому изменяем
условие включения второго триггера на
. Сигнал
условие включения третьего триггера на
.
даёт ложное включение на такте 5. Поэтому изменяем
Получаем выражение для сигнала z. Сигнал z имеет два периода включения. Каждый из них
реализуется своей функцией триггера.
Сигнал
на
даёт ложное включение на такте 34. Поэтому изменяем условие включения первого триггера
. Сигнал
является отключающим у первого триггера и включающим у второго триггера. Это
неправильная ситуация. Изменим условие отключения первого триггера на
триггера на
, а условие включения второго
. Таким образом мы избавимся от ложного включения на такте 32. Окончательно получим:
Получаем выражение для сигнала u. Сигнал u имеет один период включения. Первоначальное
выражение:
Ложное включение получится на такте 20. Заблокируем его.
Получаем выражение для сигнала v. Применяем традиционный способ.
Условие включения:
Условие неотключения:
Выполняются первая и вторая проверки, но не выполняется третья проверка (ложное включение на
такте 15). Заблокируем ложное включение с помощью сигнала
.
Получаем выражение для сигнала r. Применяем традиционный способ.
Условие включения:
Условие неотключения:
Выполняются первая и вторая проверки, но не выполняется третья проверка (ложное включение на
такте 27). Заблокируем ложное включение с помощью сигнала .
Получаем выражение для сигнала h. Применяем триггер:
Получаем выражение для сигнала m. Применяем триггер:
Итог:
Работа автомата описывается следующими выражениями: