Syscont (780154), страница 11
Текст из файла (страница 11)
[2749] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2750] setcolor(col_txt);
[2751] outtextxy(tw/2,dy/2,title);
[2752] /*---- Abs. co-ord. window for output */
[2753] *lx=left_x+(1+tw);
[2754] *ly=left_y+1;
[2755] *rx=right_x-1;
[2756] *ry=right_y-1;
[2757] /*----*/
[2758] return right_y+WIND_INTERVAL_Y;
[2759] }
[2760] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2761] int Wind_2
[2762] (char *title,
[2763] int col_rect,
[2764] int bk_txt,int col_txt,
[2765] int *lx,int *ly,int *rx,int *ry
[2766] /* Abs. co-ord. window for output */)
[2767] {
[2768] /*---- Variables */
[2769] int left_x,right_x;
[2770] int left_y,right_y;
[2771] int dx,dy;
[2772] int th;
[2773] /*----*/
[2774] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[2775] th=textheight("W");
[2776] /*----*/
[2777] left_x=Left_x_2;
[2778] right_x=Right_x_2;
[2779] left_y=Left_y_2;
[2780] right_y=left_y+WIND_HEIGHT*th*2;
[2781] dx=right_x-left_x;
[2782] dy=right_y-left_y;
[2783] /*---- Window total */
[2784] setviewport
[2785] (left_x,left_y,right_x,right_y,CLIP_ON);
[2786] setbkcolor(BLACK);
[2787] setcolor(col_rect);
[2788] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2789] rectangle(0,0,dx,dy);
[2790] /*---- Text window */
[2791] setfillstyle(SOLID_FILL,bk_txt);
[2792] bar(1,1,dx-1,dy/2-1);
[2793] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2794] setcolor(col_txt);
[2795] outtextxy(dx/2,dy/4,title);
[2796] /*---- Abs. co-ord. window for output */
[2797] *lx=left_x+1;
[2798] *ly=left_y+(1+WIND_HEIGHT*th);
[2799] *rx=right_x-1;
[2800] *ry=right_y-1;
[2801] /*----*/
[2802] return right_y+WIND_INTERVAL_Y;
[2803] }
[2804] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2805] int Wind_D
[2806] (float compression_y,
[2807] int col, int row,
[2808] int col_rect,
[2809] int *kx,int *ky,
[2810] int *lx,int *ly,int *rx,int *ry
[2811] /* Abs. co-ord. window for output */)
[2812] {
[2813] /*---- Variables */
[2814] int left_x,right_x;
[2815] int left_y,right_y;
[2816] int dx,dy;
[2817] /*----*/
[2818] left_x=Left_x_1;
[2819] right_x=Right_x_1;
[2820] left_y=Left_y_1;
[2821] right_y=left_y+Maxy*compression_y;
[2822] dx=right_x-left_x;
[2823] dy=right_y-left_y;
[2824] /*---- Window total */
[2825] setviewport
[2826] (left_x,left_y,right_x,right_y,CLIP_ON);
[2827] setbkcolor(BLACK);
[2828] setcolor(col_rect);
[2829] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2830] rectangle(0,0,dx,dy);
[2831] /*---- Abs. co-ord. window for output */
[2832] *lx=left_x+1;
[2833] *ly=left_y+1;
[2834] *rx=right_x-1;
[2835] *ry=right_y-1;
[2836] *kx=dx/col;
[2837] *ky=dy/row;
[2838] /*----*/
[2839] return right_y+WIND_INTERVAL_Y;
[2840] }
[2841] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2842] int Bit(int x,int y,unsigned char bit)
[2843] {
[2844] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT+2);
[2845] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2846] setbkcolor(BLACK);
[2847] /*---- Delete bit */
[2848] setcolor(BLACK);
[2849] outtextxy(x,y,"0");
[2850] outtextxy(x,y,"1");
[2851] /*---- Print bit */
[2852] if(bit==0)
[2853] {
[2854] setcolor(LIGHTBLUE);
[2855] outtextxy(x,y,"0");
[2856] }
[2857] else
[2858] {
[2859] setcolor(LIGHTMAGENTA);
[2860] outtextxy(x,y,"1");
[2861] }
[2862] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2863] setcolor(CYAN);
[2864] rectangle(
[2865] x-textwidth("0")/2-1,y-textheight("0")/2+2,
[2866] x+textwidth("0")/2-1,y+textheight("0")/2+2);
[2867] /*----*/
[2868] return 0;
[2869] }
[2870] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2871] int E
[2872] (char *t,int n,int lx,int ly,int dim_x,int dim_y,
[2873] int kx,int ky)
[2874] {
[2875] /*---- Variable */
[2876] char buf_str[80];
[2877] /*---- Device */
[2878] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT);
[2879] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2880] setcolor(LIGHTGRAY);
[2881] if(dim_x<3) dim_x=3;
[2882] if(dim_y<3) dim_y=3;
[2883] RectangleN(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky,2);
[2884] setcolor(YELLOW);
[2885] settextjustify(RIGHT_TEXT,CENTER_TEXT);
[2886] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);
[2887] setcolor(WHITE);
[2888] itoa(n,buf_str,10);
[2889] settextjustify(LEFT_TEXT,CENTER_TEXT);
[2890] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);
[2891] /*----*/
[2892] return 0;
[2893] }
[2894] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2895] int B
[2896] (char *t,int n,int lx,int ly,int dim_x,int dim_y,
[2897] int kx,int ky)
[2898] {
[2899] /*---- Variable */
[2900] char buf_str[80];
[2901] /*---- Device */
[2902] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT);
[2903] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2904] setfillstyle(SOLID_FILL,LIGHTGRAY);
[2905] if(dim_x<3) dim_x=3;
[2906] if(dim_y<3) dim_y=3;
[2907] bar(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);
[2908] setcolor(YELLOW);
[2909] rectangle(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);
[2910] settextjustify(RIGHT_TEXT,CENTER_TEXT);
[2911] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);
[2912] setcolor(WHITE);
[2913] itoa(n,buf_str,10);
[2914] settextjustify(LEFT_TEXT,CENTER_TEXT);
[2915] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);
[2916] /*----*/
[2917] return 0;
[2918] }
[2919] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2920] int RectangleN
[2921] (int left_x,int left_y,int right_x,int right_y,int n)
[2922] {
[2923] int i;
[2924] for(i=0;i<n;i++)
[2925] {
[2926] rectangle
[2927] (left_x+i,left_y+i,right_x-i,right_y-i);
[2928] if((left_x+i)>=(right_x-i)) break;
[2929] if((left_y+i)>=(right_y-i)) break;
[2930] }
[2931] /*----*/
[2932] return 0;
[2933] }
[2934] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2935] int Rectangle2
[2936] (int left_x,int left_y,int right_x,int right_y)
[2937] {
[2938] rectangle
[2939] (left_x,left_y,right_x,right_y);
[2940] rectangle
[2941] (left_x+2,left_y+2,right_x-2,right_y-2);
[2942] /*----*/
[2943] return 0;
[2944] }
[2945] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2946] int EllipseN
[2947] (int x, int y,int stangle,int endangle,
[2948] int x_radius,int y_radius,int n)
[2949] {
[2950] int i;
[2951] for(i=0;i<n;i++)
[2952] {
[2953] ellipse(x,y,stangle,endangle,x_radius-i,y_radius-i);
[2954] if(x_radius<=0) break;
[2955] if(y_radius<=0) break;
[2956] }
[2957] /*----*/
[2958] return 0;
[2959] }
[2960] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2961] int Ellipse2
[2962] (int x, int y,int stangle,int endangle,
[2963] int x_radius,int y_radius)
[2964] {
[2965] ellipse(x,y,stangle,endangle,x_radius,y_radius);
[2966] ellipse(x,y,stangle,endangle,x_radius-2,y_radius-2);
[2967] /*----*/
[2968] return 0;
[2969] }
[2970] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2971] /*######################################################*/
Приложение 2.
Титульный лист программы автоматического управления.
Приложение 3.
Индикация начала работы программы автоматического управления.
Приложение 4.
Индикация работы устройства
DEVICE LVD-1.
Приложение 5.
Индикация работы устройства
DEVICE LVD-2.
Приложение 6.
Индикация работы устройства
МУЗЫКАЛЬНЫЙ ЦЕНТР.
Приложение 7.
Индикация работы устройства
АВТОПИЛОТ.
Литература.
-
Подбельский В.В., Фомин С.С. Программирование на языке Си - М: Финансы и статистика, 2000.
-
Керниган Б., Ритчи Д. Язык программирования Си / Пер. с англ. - М.: Финансы и статистика, 1992.
-
Болски М.И. Язык программирования Си / Пер. с англ. Справочник. - М.: Радио и связь, 1988.
-
Уэйт М., Прата С., Мартин Д. Язык Си / Пер. с англ. - М.:Мир, 1988.
-
Белецкий Я. Энциклопедия языка Си / Пер. с англ. - М.:Мир, 1992.
-
Джехани Н. Программирование на языке Си. / Пер. с англ. Справочник. - М.: Радио и связь, 1988.
-
Уинер Р. Язык Турбо Си / Пер. с англ. - М.:Мир, 1991.
-
Левкин Г.Н., Левкина В.Е. ДЕМО ТУРБО СИ - М: ПРОК, 1992.
-
Бошкин А.В., Дубнер П.Н. Работа в Турбо СИ – М: ЮКИС, 1991.
-
Б.П. Прокофьев, Н.Н. Сухарев, Ю.Е. Храмов Графические средства Турбо С и Турбо С++ - М: Финансы и статистика, 1992.
-
Шилдт Г. Полный справочник по С, 4-е издание/ Пер. с англ. – М, С-Пб, Киев: Издательский дом Вильямс, 2002.
-
Трой Д. Программирование на языке Си для персонального компьютера IBM PC/ Пер. с англ. – М: Радио и связь, 1991.
-
Касаткин А.И., Вальвачев А.Н. От Turbo C к Borland C++ Справочное пособие – Минск: Вышэйшая школа, 1992
-
Касаткин А.И. Управление ресурсами Справочное пособие – Минск: Вышэйшая школа, 1992.
-
Касаткин А.И. Системное программирование Справочное пособие – Минск: Вышэйшая школа, 1993.
-
Евтеев В.В., Махонько А.М., Юзбашьянц Основы информатики и вычислительной техники, Методические рекомендации – М: Государственная Академия Управления им. С. Орджоникидзе, Учебный центр довузовской подготовки АЗЪ, 1987.
-
Чернов Е.А. Проектирование станочной электроавтоматики – М: Машиностроение, 1989.
-
Березин Б.И., Березин С.Б. Начальный курс С и С++ - М: ДИАЛОГ-МИФИ, 2003.
-
Стефанович А.Е. Программный имитатор электронных схем (ПИЭС). Учебно-методическое пособие по дисциплине “Программирование и основы алгоритмизации” – М: МГАПИ, 2005.
-
Стефанович А.Е. Программный автоматизированный имитатор электронных схем (ПАИЭС). Учебно-методическое пособие по дисциплине “Программирование и основы алгоритмизации” – М: МГАПИ, 2005.
Содержание.
| 1. Предисловие. | 2 |
| 2. Основные правила при работе с программами, написанными на языке Turbo C. | 3 |
| 3. Программная имитация систем автоматического управления. | 5 |
| 4. Режимы работы системы автоматического управления. Отображение параметров процесса управления. | 7 |
| 5. Перечень и назначение подпрограмм системы автоматического управления. | 9 |
| 6. Порядок разработки системы автоматического управления на основе образца. | 13 |
| 7. Входные файлы режимов работы NN 3, 4, 5, 6. | 14 |
| 8. Выходные файлы Control.c (“Черный ящик”). | 16 |
| Приложение 1.Исходный текст программы на языке Си. | 20 |
| Приложение 2.Титульный лист программы автоматического управления. | 87 |
| Приложение 3.Индикация начала работы системы автоматического управления. | 88 |
| Приложение 4.Индикация работы устройства DEVICE LVD-1. | 89 |
| Приложение 5.Индикация работы устройства DEVICE LVD-2. | 90 |
| Приложение 6.Индикация работы устройства МУЗЫКАЛЬНЫЙ ЦЕНТР. | 91 |
| Приложение 7.Индикация работы устройства АВТОПИЛОТ. | 92 |
| Литература. | 93 |
95















