imiaDPd (780151)
Текст из файла
МОСКОВСКИЙ ГОРОДСКОЙ ДВОРЕЦ
ТВОРЧЕСТВА ДЕТЕЙ И ЮНОШЕСТВА
А.Е. Стефанович
Программный автоматизированный имитатор электронных схем
(ПАИЭС)
Методическое пособие по выполнению учебных работ.
Дисциплина:
“Программирование и основы алгоритмизации”.
Москва 2003-2004
1. Предисловие.
Цель методического пособия - обучение учащихся синтезу систем управления на основе программных автоматизированных имитаторов электронных схем (ПАИЭС).
Основой методического пособия является программа imiaDP.c, написанная автором на языке программирования Си и представляющая собой программный конструктор, на основании которого можно создавать ПАИЭС, выполняющие заданные логические функции, а затем из этих ПАИЭС синтезировать заданную систему управления. Исходный текст (образец) ПАИЭС обеспечивает имитацию 6 режимов работы (см. главу 4).
Так как исходный текст (образец) ПАИЭС составлен по модульному принципу, то любой из вышеприведенных режимов работы может быть легко исключен из программы, а любой другой режим легко вставлен в программу. При этом может быть обеспечена любая логика работы, в том числе имитация обработки сигналов мехатронных устройств (сигналов рассогласования, запросов на обслуживание и т.д.) . Количество режимов не ограничено.
Все результаты работы записываются по принципу “черного ящика” в автоматически открывающийся выходной файл.
ПАИЭС может быть использован при обучении учащихся программированию, разработке курсовых и дипломных проектов, создании систем автоматического управления учебного, научного и промышленного назначения, проектировании демонстрационных стендов. Причем, система автоматического управления может состоять, как из реальных программно управляемых мехатронных объектов, так и из их программных имитаторов (виртуальных объектов). Для связи ПАИЭС с программно управляемым мехатронным объектом или комплексом мехатронных объектов, объединенных интерфейсной магистралью, необходима программа-драйвер устройства или магистрали, которая должна быть включена в виде программного модуля в исходный текст ПАИЭС.
Исходный текст (образец) ПАИЭС содержит практически все основные средства языка программирования Си. В тексте использованы только библиотечные функции, т.е. нет обращения к заимствованным программам, что позволяет полностью проследить логику работы программы. Текст подробно комментирован на английском языке.
В главе 6 приведены исходные данные для 1152 вариантов учебных работ.
2. Основные правила при работе с программами, написанными на языке Turbo C.
При работе с программой необходимо:
- напечатать листинг исходного текста программы, используя соответствующую дискету;
- изучить листинг исходного текста программы, поставив себя на место написавшего ее ПРОГРАММИСТА:
-
комментарий заголовка,
-
вход программы Entry,
-
выход программы Exit,
-
разделы программы (Includes, Declarations, Defines, Globals variables, Main, Programms, ...),
-
комментарии,
-
структуру программы (линейный режим следования операторов, блоки операторов, условные и безусловные переходы, циклы, ...),
-
вызовы функций,
-
прототипы (декларации, программные интерфейсы, описания) функций (в том числе в текстах, включаемых библиотек типа h),
-
тексты функций,
-
распределение памяти,
-
присвоение переменных;
- изучить листинг исходного текста обучающей программы, поставив себя на место ПРЕПРОЦЕССОРА, обрабатывающего инструкции #include, #define,… и создающего из исходного текста на языке Си расширенный текст на языке Си;
- изучить листинг исходного текста обучающей программы, поставив себя на место ТРАНСЛЯТОРА, создающего из расширенного текста на языке Си двоичный файл объектного модуля типа obj;
- изучить листинг исходного текста обучающей программы, поставив себя на место РЕДАКТОРА СВЯЗЕЙ (ЛИНКЕРА), создающего из двоичного файла объектного модуля типа obj двоичный файл исполняемого модуля типа exe;
- изучить листинг исходного текста обучающей программы, поставив себя на место ЦЕНТРАЛЬНОГО ПРОЦЕССОРА, обрабатывающего инструкции исполняемого модуля типа exe;
- запустить файл исполняемого модуля типа exe;
- следить за выполнением запущенной программы на экране дисплея, одновременно изучая листинг соответствующего исходного текста;
- изучить работу функций препроцессора (#include, #define, ...),
- исследовать работу применяемых функций, используя соответствующие справочники по схеме:
-
выполняемая функция,
-
заголовок,
-
прототип (декларация, программный интерфейс, описание функции),
-
библиотека (файл типа h или c), содержащая прототип или исходный текст (тело) функции,
-
возможные варианты спецификации формата, типы аргументов, виды печати (если функция осуществляет вывод информации, например, функция printf),
-
тип функции (тип возвращаемого оператором return значения),
-
типы входных и выходных переменных,
-
распределение и типы памяти для хранения входных и выходных переменных,
-
обмен информацией между вызывающей и вызываемой программами,
-
особые замечания,
-
основной результат работы,
-
сопутствующие результаты работы (в частности, какую информацию возвращает оператор return),
-
родственные функции (например, изучая работу функции printf изучить работу функций sprintf, fprintf, vfprintf, vprintf, vsprintf)
-
функции, выполняющие противоположные операции (например, в случае изучения функции printf, осуществляющую вывод информации, изучить также функцию scanf, осуществляющую ввод информации).
- изучить работу операторов (for, while, do-while, swith, if, if-else, else-if, break, ...), используя рекомендуемые учебники;
- используя листинг письменно прокомментировать каждую строку исходного текста;
- на отдельных листах письменно прокомментировать примененные функции по вышеприведенной схеме;
3. Программный автоматизированный имитатор электронных схем.
Схемы промышленной электроавтоматики, например схема управления приводом главного движения станка или схема управления выбором и сменой инструментов, являются цифровыми автоматами, работа которых описывается логическими функциями.
Универсальный метод синтеза промышленной электроавтоматики основан на создании циклограмм работы механизмов и их описании уравнениями алгебры логики. Этот метод позволяет проектировать оптимальные принципиальные схемы любой степени сложности и на любой элементной базе.
Этот же метод (создание циклограмм работы механизмов и их описание уравнениями алгебры логики) может быть использован при синтезе систем управления на основе ПАИЭС. В этом случае с помощью программ, написанных ,например, на языке Ассемблер или Си, имитируется работа электронных устройств, выполняющих логические функции (инвертора НЕ, элемента И, элемента ИЛИ и т.д.), а затем из этих программных имитаторов синтезируется заданная система управления, имеющая такие же логические входные и выходные сигналы, что и имитируемая электронная схема.
Прилагаемый исходный текст (образец) ПАИЭС (программа imiaDP.с ) соответствует электронной схеме (см. Приложение 1), имеющей три входа X1, X2, X3, два выхода Z1 и Z2 и описываемой логическими уравнениями:
Z1=Y2Y1X3+Y1Y3X2+Y3Y2X1+X1X2X3
Z2=X3X2+X3X1+X2X1
где Y1, Y2, Y3 - инвертированные X1, X2, X3.
При транслировании указанного текста получается ПАИЭС imiaDP.exe , описываемый вышеприведенными уравнениями. При запуске ПАИЭС imiaDP.exe и вводе двоичных кодов входных значений X1, X2, X3 (для трех входов возможно восемь комбинаций) на выходах Z1 и Z2 получаются двоичные коды выходных значений в соответствии с логикой работы заданной схемы.
4. Режимы работы программного автоматизированного имитатора электронных схем.
Исходный текст (образец) ПАИЭС обеспечивает имитацию следующих режимов работы (Regimes of the work):
-
Ввод входной команды вручную
(Hand Command). -
Ввод входной команды и времени ее выполнения вручную
(Hand Time - Hand Command). -
Автоматический ввод последовательности входных команд из файла, ввод постоянного временного интервала между командами вручную
(Automatic Commands'file with Commands - Hand Interval constant). -
Автоматический ввод последовательности входных команд, автоматический ввод переменных временных интервалов между командами из файла
(Automatic Commands'file with Commands and Intervals [Intervals variable]). -
Автоматический ввод последовательности входных команд и времен их выполнения из файла
(Automatic Commands'file with Times and Commands). -
Автоматический ввод случайных команд в случайные временные интервалы между командами с помощью программных генераторов случайных чисел (максимальный интервал между командами задается вручную, с целью минимизации времени ожидания выдачи следующей команды).
(Automatic Random Commands, Random Intervals, Interval hand max).
При работе ПАИЭС выводится на экран дисплея:
-
электронная или, в случае сложных электронных схем, блочная схема имитируемого объекта или комплекса имитируемых объектов;
-
двоичный код выполняемой команды;
-
двоичный код следующей команды, с целью возможности предотвращения ее выдачи;
-
текущие двоичные значения всех входов и выходов имитируемых объектов;
-
логические уравнения электронных схем и блоков;
-
текущее время;
-
время выдачи последней команды;
-
время выдачи следующей команды;
-
временной интервал между соседними командами;
-
время, прошедшее от выдачи предыдущей команды;
-
показания счетчика команд;
-
режим работы ПАИЭС.
Все результаты работы записываются по принципу “черного ящика” в автоматически открывающийся выходной файл CONTROL.C.
Так как исходный текст (образец) ПАИЭС составлен по модульному принципу, то при разработке конкретного ПАИЭС любой из вышеприведенных режимов работы может быть легко исключен из программы, а любой другой режим легко вставлен в программу.
5. Перечень и назначение подпрограмм программного автоматизированного имитатора электронных схем.
Исходный текст (образец) ПАИЭС написан на языке программирования Си по модульному принципу. т.е. состоит из подпрограмм (программных модулей). При разработке конкретного ПАИЭС любой из модулей может быть легко исключен из программы, любой другой модуль может быть легко вставлен в программу. Для удобства работы с ПАИЭС разделы исходного текста (образца), требующие вмешательства при синтезе конкретной электронной схемы, отмечены комментарием
/* <=### CHANGE ### */)
Исходный текст (образец) ПАИЭС состоит из следующих подпрограмм:
-
Переход в графический режим
int graph_regime(); -
Переход в текстовый режим
int text_regime(); -
Титульный лист программы
int title_sheet(); /* <=### CHANGE ### */ -
Выбор режима работы ПАИЭС
int choice_regime_work(); /* <=### CHANGE ### */ -
Чертеж имитируемой схемы
int draft(); /* <=### CHANGE ### */ -
Программный блок логики
int logic_0(); /* <=### CHANGE ### */ -
Вывод бита 1 или 0 на чертеж схемы
int bit(int x,int y,int bit); -
Вывод всех бит всех входов и выходов на чертеж схемы
int all_bit_0(); /* <=### CHANGE ### */ -
Ввод команды вручную (Режим 0)
int hand_order_var0(); /* <=### CHANGE ### */ -
Ввод команды и времени ее выдачи вручную (Режим 1)
int hand_order_var1(); /* <=### CHANGE ### */ -
Ввод интервала между командами вручную (Режим 2)
int hand_order_var2(); /* <=### CHANGE ### */ -
Ввод максимального интервала между командами (Режим 5)
int hand_order_var5(); /* <=### CHANGE ### */ -
Открытие входного файла
int openfile_entry(); /* <=### CHANGE ### */ -
Открытие выходного файла
int openfile_exit(); -
Автоматический ввод команд из входного файла (Режим 2)
int file_order_var2(); /* <=### CHANGE ### */ -
Автоматический ввод команд и интервалов из входного файла (Режим 3)
int file_order_var3(); /* <=### CHANGE ### */ -
Автоматический ввод команд и времени их выполнения из входного файла (Режим 3)
int file_order_var4(); /* <=### CHANGE ### */ -
Получение даты PC
int get_date_pc_counted(); -
Получение времени PC
int get_time_pc_counted(); -
Вывод на дисплей времени PC
int display_time_pc_counted(); -
Вывод на дисплей даты PC
int display_date_pc_counted(int f); -
Вывод на дисплей времени выдачи команд
int display_time_ordered(); -
Вывод на дисплей двоичного кода следующей команды
int display_next_entrance(); -
Вывод на дисплей времени, прошедшего от выдачи предыдущей команды;
int display_interval_counted(int f); -
Вывод на дисплей интервала между командами
int display_interval_ordered(int f); -
Вывод на дисплей показаний счетчика команд
int display_counter_commands(int f); -
Вывод на дисплей режима работы ПАИЭС
int display_regime_work(); -
Ввод информации о работе ПАИЭС в выходной контрольный файл (“черный ящик”)
int file_control(); -
Завершающие операции
int end_programm();
6. Порядок разработки ПАИЭС на основе образца.
При разработке на основе исходного текста (образца) ПАИЭС конкретного ПАИЭС необходимо:
-
создать циклограмму работы электронной схемы;
-
описать работу электронной схемы уравнениями алгебры логики;
-
выбрать режимы работы электронной схемы;
-
написать исходный текст ПАИЭС, соответствующий полученным уравнениям и выбранным режимам работы;
-
транслировать и линкеровать исходный текст, с целью получения исполняемого модуля ПАИЭС;
-
запустить ПАИЭС, подать на его вход все возможные комбинации двоичных кодов и проверить соответствие всех возможных комбинаций выходных значений полученным уравнениям;
-
проверить работу ПАИЭС во всех выбранных режимах;
В случае использования данного пособия для создания учебных работ необходимо:
-
представить на листах формата А4:
- титульный лист учебной работы, в соответствии с требованиями, принятыми в данном учебном заведении;
- графический титульный лист (печатается на принтере при запуске программы);
- графический лист принципиальной схемы системы управления с указанными значениями входных, промежуточных и выходных параметров (печатается на принтере при запуске программы);
- исходный текст программного имитатора электронной схемы на языке Turbo C согласно прилагаемому в данной работе образцу (делаются изменения в прилагаемом образце в соответствии с уравнениями алгебры логики заданной электронной схемы и в соответствии с выбранными режимами работы ПАИЭС, программа транслируется, линкуется, отлаживается, и только после отладки откорректированный исходный текст распечатывается на принтере, что обеспечивает его полное соответствие исполняемому модулю); -
представить на дискете исполняемый модуль ПАИЭС и продемонстрировать его работу при любой возможной комбинации входных кодов и режимов работы.
7. Варианты учебных работ.
В рассматриваемых учебных работах задания даются на программную имитацию двоичных цифровых схем систем управления, имеющих три входа X1, X2, X3 и инвертирующие их логические устройства типа НЕ (NOT).
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















