![]() | 1 2 3 Министерство образования и науки Украины Одесский национальный политехнический университет Институт компьютерных систем Кафедра компьютеризированных систем управления Курсовая работа по курсу «Основы компьютерно-интегрированного управления» Вариант №2 Выполнил: студент группы АТ-181 Одесса 2020 ЧАСТЬ 1 Постановка задачи Задачей курсовой работы является синтез комбинационного автомата, преобразующего определенную последовательность двоичных кодовых комбинаций на входе в заданную последовательность на выходе. При этом для индикации выходной последовательности используется семиэлементный индикатор. Структура устройства преобразования приведена на рис.1 Рис.1 Структура комбинационного автомата Алгоритм работы устройства следующий: На вход устройства подается последовательность кодовых двоичных сигналов ( ![]() Этот код служит для "высвечивания" десятичной цифры на цифровом индикаторе, состоящем из семи отдельных элементов (сегментов). Эти сегменты пронумерованы буквами a, b, c, d, e, f, g (см. рис.1.1). При подаче напряжения на какой-либо элемент, он "поджигается". Таким образом, для воспроизведения десятичной цифры необходимо подать напряжение на соответствующие сегменты, из которых и высвечивается стилизованное изображение цифры. Например, для высвечивания цифры 2 необходимо подать напряжение на сегменты a, c, d, e, g. В ![]()
Табл. 1 Комбинации сегментов семиэлементного индикатора. Цифрой "1" в таблице отмечены элементы, которые необходимо “поджигать". В соответствии с вышеуказанным алгоритмом цифровой автомат для каждой двоичной входной комбинации (X1, X2, X3) формирует на выходе набор сигналов F1, F2, … F7, необходимых для высвечивания той или иной десятичной цифры семиэлементного индикатора. Для трехразрядного входного двоичного набора, количество кодовых комбинаций равно 23=8. Соответственно, данный автомат может последовательно сформировать восемь произвольных десятичных цифр на семиэлементном табло. Обозначим эту произвольную последовательность индицируемых десятичных цифр следующими буквами: D1, D2, D3, D4, D5, D6, D7, D8. Тогда алгоритм работы автомата можно представить с помощью Таблицы №2:
Табл. 2 Таблица индицируемых цифр. Для заданного варианта необходимо выполнить следующее: а) составить таблицу истинности для выходных сигналов F1, F2, … F7 комбинационной схемы преобразователя; б) записать СДНФ для каждой функции F1, F2, …, F7; в) для каждой функции Fi составить карту Карно и произвести ее минимизацию; г) записать минимизированную ДНФ каждой функции Fi в трёх базисах: {И, ИЛИ, НЕ}, в базисе Шеффера {И-НЕ}, в базисе Вебба {ИЛИ-НЕ}; д) на основе полученных МДНФ функций Fi построить схему автомата с помощью логических элементов И, ИЛИ, НЕ; Причем, при построении цифрового автомата необходимо минимизировать его за счет поиска в полученных булевых функциях F1, F2, … F7 одинаковых импликант или их частей и реализации их одним набором элементов. е) реализовать схему в среде программирования CoDeSys и осуществить визуализацию ее работы в указанной среде. Исходные данные
Табл. 3 Исходные данные согласно варианту работы Ход работы а) Построим таблицу истинности для выходных сигналов F1, F2, … F7 автомата:
Табл. 4 Таблица истинности. б) На основании таблицы истинности (табл.1.4) запишем СДНФ для каждой функции F1, F2, …, F7: СДНФ функций F1, F2, …, F7 выходов дешифратора: ![]() ![]() ![]() ![]() ![]() ![]() ![]() в) Для каждой функции Fi составим карту Карно и произведем ее минимизацию. Логическая функция F1: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F2: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F3: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F4: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F5: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F6: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() Логическая функция F7: ![]() ![]() Карта Карно: X3 00 01 11 10
Минимальная ДНФ функции: ![]() г) Запишем МДНФ функций F1, F2, … F7 в трех базисах: {И, ИЛИ, НЕ}, в базисе Шеффера {И-НЕ}, в базисе Вебба {ИЛИ-НЕ}. Результаты для наглядности представим в виде таблицы.
Табл. 5 Таблица функций в базисах И-ИЛИ-НЕ, И-НЕ, ИЛИ-НЕ. д) На основании полученных логических выражений для функций F1 – F7 строим схему автомата на логических элементах И-ИЛИ-НЕ. Для минимизации количества элементов в полученных МДНФ используем принцип импликантной матрицы. В столбцах указанной матрицы запишем функции F1 – F7, а в строки запишем все импликанты, входящие в эти функции.
Табл. 6 Таблица импликантной матрицы. Импликанты, стоящие в строках матрицы, обозначим дополнительными символами ![]()
При построении логической схемы устройства сначала формируем вспомогательные логические переменные ![]() ![]() Рис. 2 Схема автомата на логических элементах И-ИЛИ-НЕ е) На основании полученных логических выражений, а также построенной логической схемы строим в среде программирования CoDeSys на языке FBD реализацию синтезированного устройства: ![]() ![]() Рис. 3 Схема реализации цифрового автомата в среде программирования CoDeSys на языке FBD. Визуализацию работы устройства осуществляем с помощью построения мнемосхемы устройства и отображения на ней всех режимов его работы. Для этого во вкладке 'Организатор проекта' выбираем вкладку Визуализация и даем команду 'Проект' → 'Объект' → 'Добавить'. Откроется диалог 'Новая визуализация', в котором нужно ввести имя новой визуализации. После ввода корректного имени (нельзя использовать уже существующее имя или специальные символы) закрываем диалог кнопкой ОК. Открывается окно, в котором можно редактировать новую визуализацию. ![]() Рис. 4 Схема графической визуализации цифрового автомата в среде программирования CoDeSys Часть элементов этой визуализации выполнена активной и позволяет отображать состояние входов и выходов устройства. Входные элементы в левой части визуализации отображают состояние входных сигналов x1, x2 и x3 цифрового автомата. В режиме эмуляции (online) каждый щелчок мышкой на изображении каждого из этих элементов изменяет значение соответствующей логической переменной, привязанной к этому элементу. При каждом щелчке мышки изменяется значение логической переменной с FALSE (логический «0») в TRUE (логическая «1») и наоборот и изменяется цвет этого элемента с красного (выкл.) на зеленый (вкл.). Одновременно на этот же вход моделируемой схемы подается соответствующий входной сигнал TRUE или FALSE. Цифровой автомат преобразует набор входных сигналов (x1, x2, x3) в соответствующий набор выходных сигналов (F1 – F7), которые подключены к соответствующим элементам семи сегментного индикатора. Линии соединения элементов визуализации и элементы семи сегментного индикатора также выполнены активными. При появлении сигнала TRUE (логическая «1») на любом выходе (F1 – F7) изменяется цвет соответствующего ему элемента семи сегментного индикатора и соединенной с ним линией. На рис. 9 отображено состояние автомата при подаче на его вход кодовой комбинации x1x2x3 = 010, которая преобразуется в индикацию цифры «2» на табло семи сегментного индикатора. ![]() Рис. 5 Схема графической визуализации цифрового автомата в режиме эмуляции Выводы по первой части курсовой работы В процессе выполнения первой части курсовой работы была построена таблица истинности для выходных сигналов автомата F1, F2, … F7. На основании таблицы истинности выведены СДНФ для каждой функции F1, F2, …, F7. Было произведено упрощение функций F1, F2, …, F7 методом импликантной матрицы. Полученная программа была проверена на корректность исполнения. 1 2 3 |