Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ_САУ_КМО.doc
Скачиваний:
12
Добавлен:
06.11.2018
Размер:
918.02 Кб
Скачать

5. Режимы работы системы автоматического управления.

Исходный текст (образец) программы SCONT обеспечивает следующие режимы работы:

  • REGIME 0. Exit. Выход из программы.

  • REGIME 1. Hand Command – Hand Delay. Адрес, команда и интервал времени задержки выполнения команды набирается на клавиатуре.

  • REGIME 2. Hand Time - Hand Command. Адрес, команда и время выполнения команды набирается на клавиатуре.

  • REGIME 3. Commands file - Hand Interval constant. Адреса и команды записаны в файл, постоянный интервал времени между командами набирается на клавиатуре.

  • REGIME 4. Commands file with Intervals variable. Адреса, команды и переменные интервалы времени между командами записаны в файл.

  • REGIME 5. Commands file with Times. Адреса, команды и время выполнения команд записаны в файл.

  • REGIME: 6. Step by step. Пошаговое выполнение команд, записанных в файл.

Выбор режимов работы осуществляется с клавиатуры с помощью подпрограммы Choice_regime_work (номер начальной строки [851], номер строки вызова [170]). Настройка и коммутация режимов запрограммирована в строках [171-201].

* * *

6. Отображение параметров процесса управления.

Модули (подпрограммы) программы SCONT.c обеспечивают в реальном времени отображение на дисплее следующих параметров процесса управления:

  • File_inp - имени входного командного файла,

  • File_out - имени выходного контрольного файла,

  • Regime - номера режима работы,

  • Com_num - количества команд в командном файле,

  • Com_cnt - номера выполняемой команды,

  • Mes_exec - кода адреса выполняемой команды, кода выполняемой команды и комментариев к этим кодам.

  • Add_ord - кода адреса следующей (заказанной) команды,

  • Com_ord - кода следующей (заказанной) команды,

  • Int_ord - временного интервала между выполняемой и следующей командой,

  • Int_cnt - времени, оставшегося до начала выполнения следующей команды, (обратного счета времени)

  • Time_pc - времени начала выполнения текущей команды,

  • Time_ord - времени начала выполнения следующей команды,

  • Error_sys - кода ошибки.

  • Reserve – оставшегося места для вывода на экран дополнительной информации.

* * *

7. Перечень и назначение подпрограмм системы автоматического управления.

Исходный текст (образец) программы SCONT.C написан на языке программирования Си по модульному принципу и состоит из подпрограмм, указанных в ниже следующих таблицах.

Формат записи в строках таблиц:

[строка декларации] назначение [строка начала определения] тип имя.

COMMON SUBROUTINE.

ПОДПРОГРАММЫ ОБЩЕГО НАЗНАЧЕНИЯ.

FILE SCONT.C.

[73] Графический режим [462] int Graph_regime ();

[74] Текстовый режим [492] int Text_regime();

[75 Титульный лист [501] int Title_sheet();

[76] Начало работы САУ [626] int Start_program(int dx,int dy);

[77] Завершение работы САУ [645] int End_program();

ADDRESS BUS SUBROUTINES.

ПОДПРОГРАММЫ АДРЕСНОЙ ШИНЫ.

FILE SCONT.C.

[79] Трех битовая адресная магистраль [653] int Addbus3bit(int kx,int ky);

[80] Логика работы трех битовой адресной магистрали [818] int Logic_addbus3bit(int kx,int ky);

INPUT SUBROUTINES.

ПОДПРОГРАММЫ ВВОДА ДАННЫХ В СИСТЕМУ.

FILE SCONT.C.

[82] Выбор режима работы САУ [851] int Choice_regime_work();

[83] Открытие входного файла [893] int Openfile_entry();

[84] Открытие выходного файла [907] int Openfile_exit()

[85] Ввод кода адреса, кода команды и интервала времени задержки выполнения команды в режиме 1 [928] int Hand_order_var1();

[86] Ввод кода адреса, кода команды и времени выполнения в режиме 2 [1012] int Hand_order_var2();

[87]Ввод интервала времени между командами в режиме 3 [1133] int Hand_order_var3();

[88] Ввод имени файла, содержащего коды адресов и команд в режиме 3 [1146] int File_order_var3();

[89] Ввод имени файла, содержащего коды адресов, команд и интервалы времени в режиме 4 [1169] int File_order_var4();

[90] Ввод имени файла, содержащего коды адресов, команд и время выполнения команд в режиме 5 [1196] int File_order_var5();

[91] Получение времени персонального компьютера [1221] int Get_time_pc_counted();

[92 Получение даты персонального компьютера [1233] int Get_date_pc_counted();

[93] Получение количества команд во входном командном файле [1246] int Get_number_commands();

STRING SUBROUTINES.

ПОДПРОГРАММЫ ФОРМИРОВАНИЯ СТРОК.

FILE SCONT.C.

[95] Формирование строки, содержащей интервал между командами в H, M, S [1263] int String_int_ordered();

[96] Формирование строки, содержащей время, оставшееся до выдачи следующей команды (строка обратного счета времени) в H, M, S [1284] int String_int_counted();

[97] Формирование строки, содержащей время выдачи следующей команды в H, M, S [1309] int String_time_pc_ordered();

[98] Формирование строки, содержащей время персонального компьютера в H, M, S [1329] int String_time_pc_counted();

OUTPUT SUBROUTINES.

ПОДПРОГРАММЫ ВЫВОДА ДАННЫХ ИЗ СИСТЕМЫ.

FILE SCONT.C.

[101] Инициализация (отображение и запоминание координат) окон правого столбца [1365] int Wind_right_ini();

[102] Вывод имени входного файла [1385] int File_inp();

[103 Вывод имени выходного файла [1465] int File_out();

[104] Вывод номера режима работы [1446] int Regime();

[105] Вывод количества команд в командном файле [1476] int Com_num();

[106] Вывод номера выполняемой команды [1508] int Com_cnt();

[107] Вывод десятичного кода адреса следующей (заказанной) команды [1540] int Add_ord();

[108] Вывод десятичного кода следующей (заказанной) команды [1572] int Com_ord();

[109] Вывод временного интервала между выполняемой и следующей командой [1604] int Int_ord();

[110] Вывод времени, оставшегося до выполнения следующей команды (обратный счет времени) [1636] int Int_cnt();

[111] Вывод времени выполнения следующей (заказанной) команды [1668] int Time_ord();

[112]Вывод времени персонального компьютера [1700] int Time_pc();

[113] Вывод кода ошибки [1732] int Error_sys();

[114] Вывод информации об оставшемся на экране месте [1763] int Reserve();

[116] Инициализация (отображение и запоминание координат) окон левого столбца [1810] int Wind_left_ini();

[117] Вывод имени САУ [1821] int Title_sys();

[118] Окно адресной магистрали [1859] int Address_bus();

[119] Окно для вывода кода адреса, кода команды и комментариев выполняемой команды [1896] int Mes_exec();

[120] Окно командной магистрали и устройств [1935] int Device_bus();

SUBROUTINES FOR CREATION OF WINDOWS.

ПОДПРОГРАММЫ СОЗДАНИЯ ОКОН.

FILE SCONT.C.

[123]Окно для вывода заголовков [2032] int Wind_0(int col_rect,int *lx,int *ly,int *rx,int *ry);

[133]Окно однострочное (наименование и данные занимают одну строку) [2068] int Wind_1(char *title,int col_rect,int bk_txt,int col_txt,int *lx,int *ly,int *rx,int *ry);

[141] Окно двустрочное (наименование и данные занимают две строки) [2114] int Wind_2(char *title,int col_rect,int bk_txt,int col_txt,int *lx,int *ly,int *rx,int *ry);

[149] Окно для вывода схем и рисунков [2158] 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);

SUBROUTINE FOR DISPLAY OF THE LOGIC.

ПОДПРОГРАММА ОТОБРАЖЕНИЯ ЛОГИЧЕСКИХ ПЕРЕМЕННЫХ 1,0.

FILE SCONT.C.

[157] Отображение логических переменных на заданных координатах [2195] int Bit(int x,int y,unsigned char bit);

SUBROUTINES FOR CREATION OF PRIMITIVES GRAPHIC.

ПОДПРОГРАММЫ СОЗДАНИЯ ГРАФИЧЕСКИХ ПРИМИТИВОВ.

FILE SYS_PRIM.h.

[17] Отображение логического элемента схемы [34] int E(char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);

[19]Отображение блока логических элементов схемы [58] int B(char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);

[22]Прямоугольник с толщиной линий в N пикселей [83] int RectangleN(int left_x,int left_y,int right_x,int right_y,int n);

[24] Прямоугольник с периметром из двух линий [98] int Rectangle2(int left_x,int left_y,int right_x,int right_y)ёё;

[26] Эллипс с толщиной линий в N пикселей [109].int EllipseN(int x, int y,int stangle,int endangle,int x_radius,int y_radius,int n);

[29] Эллипс с периметром из двух линий [125] int Ellipse2(int x, int y,int stangle,int endangle,int x_radius,int y_radius);

SUBROUTINES OF VIRTUAL SYSTEM DEVISES.

ПОДПРОГРАММЫ ВИРТУАЛЬНЫХ ПРОГРАММНЫХ ЗАГЛУШЕК.

FILES SYSDV0.h – SYSDV7.h

Виртуальные программные заглушки представляют собой файлы, предназначенные для имитации подпрограмм подключения МО к адресной и командной магистралям САУ. Имена файлов содержат цифровой индекс, соответствущий адресу МО в системе. В каждом файле имеются три подпрограммы:

  • int Dev№_pct(int kx,int ky); Имитатор подпрограммы отображения схемы (рисунка, анимации) МО

  • int Dev№_log(int kx,int ky); Имитатор подпрограммы логики МО.

  • int Dev№_bc(); Имитатор подпрограммы регистрации работы МО (черный ящик).

Где № - цифровой индекс, соответствущий адресу МО в системе.

Для всех адресов подпрограммы одинаковы.

[20] Имитатор подпрограммы отображения МО [25] int Dev№_pct(int kx,int ky); /* Picture */

[21] Имитатор подпрограммы логики МО [40] int Dev№_log(int kx,int ky); /* Logic */

[22] Имитатор подпрограммы регистрации работы (черный ящик) МО. [54] int Dev№_bc(); /* Black Case */

MUSIC SUBROUTINE.

МУЗЫКАЛЬНЫЕ ПОДПРОГРАММЫ.

FILE SYS_MUS.h.

[46]Нота определенной частоты и длительности [52] void n(float f,float l);

[47]Соната № 17 Бетховена (1) [59] void sonata17(float W);

[48]Соната № 17 Бетховена (2) [83] void sonata17r(float W);

[49]Элизе Бетховена [93] void elise(float W);

SUBROUTINE OF DEVICE MUSIC_CENTER.

ПОДПРОГРАММЫ УСТРОЙСТВА МУЗЫКАЛЬНЫЙ ЦЕНТР.

FILE MODDV0.

[29] Подпрограмма отображения рисунка заставки МО [34] int Dev0_pct(int kx,int ky); /* Picture */

[30] Подпрогамма логики МО [131] int Dev0_log(int kx,int ky); /* Logic */

[31] Подпрограмма регистрации работы (черный ящик) МО [145] int Dev0_bc(); /* Black Case */

SUBROUTINE OF DEVICE .LVD-1.

ПОДПРОГРАММЫ УСТРОЙСТВА LVD-1.

FILE MODDV1.

[33] Подпрограмма отображения схемы МО [38] int Dev1_pct(int kx,int ky); /* Picture */

[34] Подпрогамма логики МО [177] int Dev1_log(int kx,int ky); /* Logic */

[35] Подпрограмма регистрации работы (черный ящик) МО [209] int Dev1_bc(); /*Black Case */

SUBROUTINE OF DEVICE .LVD-2.

ПОДПРОГРАММЫ УСТРОЙСТВА LVD-2.

FILE MODDV2.

[34] Подпрограмма отображения схемы МО [39] int Dev2_pct(int kx,int ky); /* Picture */

[35] Подпрогамма логики МО [183] int Dev2_log(int kx,int ky); /* Logic */

[36] Подпрограмма регистрации работы (черный ящик) МО [219] int Dev2_bc(); /*Black Case */

SUBROUTINE OF DEVICE .AUTOPILOT.

ПОДПРОГРАММЫ УСТРОЙСТВА АВТОПИЛОТ.

FILE MODDV3.

[29] Подпрограмма отображения анимации МО [34] int Dev3_pct(int kx,int ky); /* Picture */

[30] Подпрогамма логики МО [158] int Dev3_log(int kx,int ky); /* Logic */

[31] Подпрограмма регистрации работы (черный ящик) МО [172] int Dev3_bc(); /*Black Case */

* * *