Syscont (779991), страница 2
Текст из файла (страница 2)
[471] int Graph_regime();
Переход в текстовый режим
[501] int Text_regime();
Отображение титульного листа
[510] int Title_sheet();
Сообщение о начале работы САУ
[635] int Start_program(int dx,int dy);
Регистрация событий в САУ (“Черный ящик”)
[654] int Black_case();
Сообщение о завершении работы САУ
[770] int End_program();
Bus and Devices. Подпрограммы шин и устройств.
Address bus. Подпрограммы шин.
Схема трех битовой адресной магистрали
[778] int Addbus3bit(int kx,int ky);
Логика работы трех битовой адресной магистрали
[943] int Logic_addbus3bit(int kx,int ky);
Devices. Подпрограммы устройств.
Схема устройства 1
[979] int Device_1(int kx,int ky);
Логика работы устройства 1
[1118] int Logic_1(int kx,int ky);
Схема устройства 2
[1149] int Device_2(int kx,int ky);
Логика работы устройства 2
[1293] int Logic_2(int kx,int ky);
Сообщения и логика работы музыкального центра
[1329] int Music_center(int dx,int dy);
Индикатор курса (сообщения) и логика работы автопилота
[1428] int Autopilote(int dx,int dy);
Input DATA in the System. Подпрограммы ввода данных в систему.
Выбор режима работы САУ
[1550] int Choice_regime_work();
Открытие входного файла
[1592] int Openfile_entry();
Открытие выходного файла (“Черного ящика”)
[1606] int Openfile_exit();
Ввод кода адреса, кода команды и интервала времени задержки выполнения команды в режиме 1
[1627] int Hand_order_var1();
Ввод кода адреса, кода команды и времени выполнения команды в режиме 2
[1707] int Hand_order_var2();
Ввод интервала времени между командами в режиме 3
[1825] int Hand_order_var3();
Ввод имени файла, содержащего коды адресов и команд в режиме 3
[1838] int File_order_var3();
Ввод имени файла, содержащего коды адресов, команд и интервалы времени в режиме 4
[1848] int File_order_var4();
Ввод имени файла, содержащего коды адресов, команд и время выполнения команд в режиме 5
[1863] int File_order_var5();
Получение времени персонального компьютера
[1876] int Get_time_pc_counted();
Получение даты персонального компьютера
[1888] int Get_date_pc_counted();
Получение количества команд во входном командном файле
[1901] int Get_number_commands();
Подпрограммы формирования строк.
Формирование строки, содержащей интервал между командами
в H, M, S
[1935] int String_int_ordered();
Формирование строки, содержащей время, оставшееся до выдачи следующей команды (строка обратного счета времени) в H, M, S
[1956] int String_int_counted();
Формирование строки, содержащей время выдачи следующей команды в H, M, S
[1981] int String_time_pc_ordered();
Формирование строки, содержащей время персонального компьютера в H, M, S
[2001] int String_time_pc_counted();
Подпрограммы вывода данных из системы.
Окно вывода данных
[2021] int Wind_out(int lx,int ly,int rx,int ry,int bk_val,int col_val,char *str);
Инициализация (отображение и запоминание координат) окон правого столбца
[2037] int Wind_right_ini();
Вывод имени входного файла
[2057] int File_inp();
Вывод имени выходного файла (“Черного ящика”)
[2088] int File_out();
Вывод номера режима работы САУ
[2118] int Regime();
Вывод количества команд в командном файле
[2148] int Com_num();
Вывод номера выполняемой команды
[2180] int Com_cnt();
Вывод десятичного кода адреса следующей (заказанной) команды
[2212] int Add_ord();
Вывод десятичного кода следующей (заказанной) команды
[2244] int Com_ord();
Вывод временного интервала между выполняемой и следующей командой
[2276] int Int_ord();
Вывод времени, оставшегося до выполнения следующей команды
(обратный счет времени)
[2308] int Int_cnt();
Вывод времени выполнения следующей (заказанной) команды
[2340] int Time_ord();
Вывод времени персонального компьютера
[2372] int Time_pc();
Вывод кода ошибки
[2404] int Error_sys();
Вывод информации об оставшемся на экране месте
[2435] int Reserve();
Инициализация (отображение и запоминание координат) окон левого столбца
[2482] int Wind_left_ini();
Вывод имени САУ
[2493] int Title_sys();
Окно отображения адресной магистрали
[2531] int Address_bus(); /* Window for Address_bas */
Окно для вывода кода адреса, кода команды и комментариев выполняемой команды
[2568] int Mes_exec();
Окно отображения командной магистрали и устройств
[2607] int Device_bus(); /* Window for Device_bus */
My functions. Вспомогательные функции.
Windows. Окна.
Окно для вывода заголовков
[2679] int Wind_0(int col_rect,int *lx,int *ly,int *rx,int *ry);
Окно однострочное (наименование и данные занимают одну строку)
[2715] int Wind_1(char *title,int col_rect,int bk_txt,int col_txt,int *lx,int *ly,int *rx,int *ry);
Окно двустрочное (наименование и данные занимают две строки)
[2761] int Wind_2(char *title,int col_rect,int bk_txt,int col_txt,int *lx,int *ly,int *rx,int *ry);
Окно для вывода схем и рисунков (window for the drafts)
[2805] int Wind_D(float compression_y,int col, int row,int col_rect,int *kx,int *ky,int *lx,int *ly,int *rx,int *ry);
Display of the logic. Отображение логических переменных (0, 1).
Отображение логических переменных на заданных координатах
[2842] int Bit(int x,int y,unsigned char bit);
Elements and devices. Элементы и устройства.
Отображение логического элемента схемы
[2871] int E(char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);
Отображение блока логических элементов схемы
[2894] int B(char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);
Primitives. Примитивы.
Прямоугольник с толщиной линий в N пикселей
[2920] int RectangleN(int left_x,int left_y,int right_x,int right_y,int n);
Прямоугольник с периметром из двух линий
[2935] int Rectangle2(int left_x,int left_y,int right_x,int right_y);
Эллипс с толщиной линий в N пикселей
[2946] int EllipseN(int x, int y,int stangle,int endangle,int x_radius,int y_radius,int n);
Эллипс с периметром из двух линий
[2961] int Ellipse2(int x, int y,int stangle,int endangle,int x_radius,int y_radius);
6. Порядок разработки системы автоматического управления на основе образца.
При разработке на основе исходного текста (образца) САУ конкретной САУ необходимо:
-
создать циклограмму работы электронной схемы;
-
описать работу электронной схемы уравнениями алгебры логики;
-
выбрать режимы работы электронной схемы;
-
написать исходный текст САУ, соответствующий полученным уравнениям и выбранным режимам работы;
-
транслировать и линкеровать исходный текст, с целью получения исполняемого модуля САУ;
-
запустить САУ, подать на его вход все возможные комбинации двоичных кодов и проверить соответствие всех возможных комбинаций выходных значений полученным уравнениям;
-
проверить работу САУ во всех выбранных режимах;
В случае использования данного пособия для создания курсовых работ необходимо:
-
представить на листах формата А4:
-
титульный лист курсовой работы, в соответствии с требованиями, принятыми в данном учебном заведении;
-
графический титульный лист (печатается на принтере при запуске программы);
-
графический лист принципиальной схемы системы управления с указанными значениями входных, промежуточных и выходных параметров (печатается на принтере при запуске программы);
-
исходный текст программного имитатора электронной схемы на языке Turbo C согласно прилагаемому в данной работе образцу (делаются изменения в прилагаемом образце в соответствии с уравнениями алгебры логики заданной электронной схемы и в соответствии с выбранными режимами работы САУ, программа транслируется, линкуется, отлаживается, и только после отладки откорректированный исходный текст распечатывается на принтере, что обеспечивает его полное соответствие исполняемому модулю);
-
представить на дискете исполняемый модуль САУ и продемонстрировать его работу при любой возможной комбинации входных кодов и режимов работы.
Подробнее см. пособия [19],[20].
7. Входные файлы режимов работы NN 3, 4, 5, 6.
Входной файл в режимах 3 и 6 имеет формат ввода сообщений и формат ввода двоичных разрядов адресов A0, A1, A2 и двоичных разрядов команд C0, C1, C2:
[1841] fgets(Messages_exec,79,Fp1); /* формат ввода сообщений */
[1842] fscanf /* формат ввода адресов и команд */
[1843] (Fp1,"%1d%1d%1d---%1d%1d%1d\n",
[1844] &A2,&A1,&A0,&C2,&C1,&C0);
Например:
"ADD: 1 *DEVICE LVD-1*, COM: 1 *Moda 1*"
0 0 1---0 0 1
"ADD: 1 *DEVICE LVD-1*, COM: 2 * Moda 2 *"
0 0 1---0 1 0
"ADD: 1 *DEVICE LVD-1*, COM: 4 * Moda 4 *"
0 0 1---1 0 0
Входной файл в режиме 4 имеет формат ввода сообщений и формат ввода двоичных разрядов адресов A0, A1, A2, двоичных разрядов команд C0, C1, C2 и десятичных интервалов времени (секунды) между командами:
[1851] fgets(Messages_exec,79,Fp1); /* формат ввода сообщений */
[1852] fscanf /* формат ввода адресов, команд и интервалов*/
[1853] (Fp1,"%1d%1d%1d---%1d%1d%1d---%10ld\n",
[1854] &A2,&A1,&A0,&C2,&C1,&C0,&Interval_ordered);
Например:
"ADD: 1 *DEVICE LVD-1*, COM: 1 *Moda 1*"
0 0 1---0 0 1---15
"ADD: 1 *DEVICE LVD-1*, COM: 2 *Moda 2*"
0 0 1---0 1 0---20
"ADD: 1 *DEVICE LVD-1*, COM: 4 *Moda 4*"
0 0 1---1 0 0---15
Входной файл в режиме 5 имеет формат ввода сообщений и формат ввода двоичных разрядов адресов A0, A1, A2, двоичных разрядов команд C0, C1, C2 и десятичных разрядов времени (часы, минуты, секунды) выполнения команд:
[1866] fgets(Messages_exec,79,Fp1); /* формат ввода сообщений */
[1867] fscanf /* формат ввода адресов, команд и времени выполнения*/
[1868] (Fp1,"%1d%1d%1d---%1d%1d%1d---%2d%2d%2d\n",
[1869] &A2,&A1,&A0,&C2,&C1,&C0,&Ho,&Mo,&So);
Например:
"ADD: 1 *DEVICE LVD-1*, COM: 1 *Moda 1*"
0 0 1---0 0 1---12 00 00
"ADD: 1 *DEVICE LVD-1*, COM: 2 *Moda 2*"
0 0 1---0 1 0---12 00 10
"ADD: 1 *DEVICE LVD-1*, COM: 4 *Moda 4*"
0 0 1---1 0 0---12 00 20
8. Выходные файлы Control.c (“Черный ящик”).
Выходной файл в режиме 1 имеет формат вывода сообщений:
Tue Jul 12 14:30:36 2005
File entry:
File exit : Control.c
REGIME: 1.
Hand Command
----------------------------------------------
Counter_commands---,H,M,S---,A2,A1,A0---,C2,C1,C0
1---14:30:39---011---101
Выходной файл в режиме 2 имеет формат вывода сообщений:
Tue Jul 12 14:41:23 2005
File entry:
File exit : Control.c
REGIME: 2.
Hand Time - Hand Command
----------------------------------------------
Counter_commands---,H,M,S---,A2,A1,A0---,C2,C1,C0
1---14:42:5---001---001
AI2,AI1,AI0--,And1,And2,And3--,Or1,Or2,Or3--,Z1,Z2,Z3
110--000--100--000
Выходной файл в режиме 3 имеет формат вывода сообщений:
Tue Jul 12 15:18:05 2005
File entry: x33t.c
File exit : Control.c
REGIME: 3.
Commands file.
Hand Interval const.
----------------------------------------------
Counter_commands---,H,M,S---,A2,A1,A0---,C2,C1,C0
1---15:18:9---001---001
AI2,AI1,AI0--,And1,And2,And3--,Or1,Or2,Or3--,Z1,Z2,Z3
110--000--100--000
----------------------------------------------
Counter_commands---,H,M,S---,A2,A1,A0---,C2,C1,C0
2---15:18:13---001---010
AI2,AI1,AI0--,And1,And2,And3--,Or1,Or2,Or3--,Z1,Z2,Z3