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

19. Файл moddv2.H. Электронная схема lvd-2.

[1] /*########################################################*/

[2] /*

[3] Copyright (C) 2008 by A.E.Stefanovich tel. 236-2729, 268-3916

[4] Moscow State University of the Instrumentation and Informatics

[5] MGUPI

[6] Chair Information Maintenance of Systems Robototechnical and Mechatronic

[7] IS 5

[8] */

[9] /*########################################################*/

[10] /*

[11] File: MODDV2.h

[12] DEVICE LVD_2 with BLACK CASE.

[13] */

[14] /*################################################ LEGEND */

[15] /*

[16] ----------------

[17] Student: L.V. Doronina

[18] Group: IS 5-94-02 (d)

[19] Code: 94505

[20] ----------------

[21] Discipline: Programming (3403)

[22] Specialty: 2204.01

[23] Teacher: A.E. Stefanovich

[24] ---------------

[25] Year: 2008

[26] */

[27] /*########################################################*/

[28] /*============================= Global Variable */

[29] unsigned int Lvd2_Or1,Lvd2_And1,Lvd2_Or2; /* Device Range 1 */

[30] unsigned int Lvd2_And2,Lvd2_Or3,Lvd2_And3; /* Device Range 2 */

[31] unsigned int Lvd2_Or4,Lvd2_Inv1; /* Device Range 3 */

[32] unsigned int Lvd2_Z0,Lvd2_Z1; /* EXIT */

[33] /*============================= Declarations */

[34] int Dev2_pct(int kx,int ky); /* Picture */

[35] int Dev2_log(int kx,int ky); /* Logic */

[36] int Dev2_bc(); /*Black Case */

[37] /*######################################### SUB_PROGRAMMS */

[38] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[39] int Dev2_pct(int kx,int ky) /* Picture */

[40] {

[41] clearviewport();

[42] /*---- Wires */

[43] setlinestyle(SOLID_LINE,0,NORM_WIDTH);

[44] setbkcolor(BLACK);

[45] setcolor(LIGHTGRAY);

[46] setfillstyle(SOLID_FILL,LIGHTGRAY);

[47] /* C2 */

[48] line(6*kx,5*ky,3*kx,5*ky);

[49] fillellipse(3*kx,5*ky,2,1);

[50] line(3*kx,5*ky,3*kx,25*ky);

[51] /* C1 */

[52] line(6*kx,9*ky,4*kx,9*ky);

[53] fillellipse(4*kx,9*ky,2,1);

[54] line(4*kx,9*ky,4*kx,25*ky);

[55] /* C0 */

[56] line(6*kx,13*ky,5*kx,13*ky);

[57] fillellipse(5*kx,13*ky,2,1);

[58] line(5*kx,13*ky,5*kx,25*ky);

[59] /* ~C0 */

[60] line(9*kx,5*ky,12*kx,5*ky);

[61] fillellipse(12*kx,5*ky,2,1);

[62] line(12*kx,5*ky,12*kx,25*ky);

[63] /* ~C1 */

[64] line(9*kx,9*ky,11*kx,9*ky);

[65] fillellipse(11*kx,9*ky,2,1);

[66] line(11*kx,9*ky,11*kx,25*ky);

[67] /* ~C2 */

[68] line(9*kx,13*ky,10*kx,13*ky);

[69] fillellipse(10*kx,13*ky,2,1);

[70] line(10*kx,13*ky,10*kx,25*ky);

[71] /*---- To Or 1 */

[72] line(12*kx,15*ky,17*kx,15*ky);

[73] fillellipse(12*kx,15*ky,2,1);

[74] line(11*kx,16*ky,17*kx,16*ky);

[75] fillellipse(11*kx,16*ky,2,1);

[76] /*---- To And 1 */

[77] line(10*kx,19*ky,17*kx,19*ky);

[78] fillellipse(10*kx,19*ky,2,1);

[79] line(5*kx,20*ky,17*kx,20*ky);

[80] fillellipse(5*kx,20*ky,2,1);

[81] /*---- To Or 2 */

[82] line(4*kx,23*ky,17*kx,23*ky);

[83] fillellipse(4*kx,23*ky,2,1);

[84] line(3*kx,24*ky,17*kx,24*ky);

[85] fillellipse(3*kx,24*ky,2,1);

[86] /*---- Level 2 */

[87] line(21*kx,11*ky,21*kx,25*ky);

[88] fillellipse(21*kx,11*ky,2,1);

[89] line(21*kx,11*ky,35*kx,11*ky);

[90]

[91] line(22*kx,12*ky,22*kx,25*ky);

[92] fillellipse(22*kx,12*ky,2,1);

[93] line(22*kx,12*ky,35*kx,12*ky);

[94]

[95] line(23*kx,13*ky,23*kx,25*ky);

[96] fillellipse(23*kx,13*ky,2,1);

[97] line(23*kx,13*ky,35*kx,13*ky);

[98] /*---- To Level 2 */

[99] line(20*kx,15*ky,23*kx,15*ky);

[100] fillellipse(23*kx,15*ky,2,1);

[101]

[102] line(20*kx,19*ky,22*kx,19*ky);

[103] fillellipse(22*kx,19*ky,2,1);

[104]

[105] line(20*kx,23*ky,21*kx,23*ky);

[106] fillellipse(21*kx,23*ky,2,1);

[107] /*---- To And 2 */

[108] line(25*kx,13*ky,25*kx,14*ky);

[109] fillellipse(25*kx,13*ky,2,1);

[110]

[111] line(26*kx,12*ky,26*kx,14*ky);

[112] fillellipse(26*kx,12*ky,2,1);

[113] /*---- To Or 3 */

[114] line(29*kx,12*ky,29*kx,14*ky);

[115] fillellipse(29*kx,12*ky,2,1);

[116] line(30*kx,11*ky,30*kx,14*ky);

[117] fillellipse(30*kx,11*ky,2,1);

[118] /*---- To And 3 */

[119] line(33*kx,11*ky,33*kx,14*ky);

[120] fillellipse(33*kx,11*ky,2,1);

[121] line(34*kx,13*ky,34*kx,14*ky);

[122] fillellipse(34*kx,13*ky,2,1);

[123] /*---- To Or4, Inv1 */

[124] line(26*kx,17*ky,26*kx,20*ky); /* To Or4 1 */

[125] line(30*kx,17*ky,30*kx,20*ky); /* To Or4 0 */

[126] line(34*kx,17*ky,34*kx,20*ky); /* To Inv1 */

[127] /*---- Exit */

[128] line(28*kx,23*ky,28*kx,24*ky); /* Or4 0 */

[129] line(34*kx,23*ky,34*kx,24*ky); /* Inv1 */

[130] /*---- Titles */

[131] setcolor(WHITE);

[132] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[133] settextjustify(RIGHT_TEXT,TOP_TEXT);

[134] outtextxy(36*kx,1*ky,"D E V I C E L V D - 2");

[135] settextstyle(SMALL_FONT,VERT_DIR,5);

[136] outtextxy(1*kx,1*ky,"C O M M A N D B U S");

[137] /*---- Formula */

[138] setcolor(CYAN);

[139] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[140] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[141] outtextxy(36*kx,5*ky,"Z0=~((~C2+~C1)*( C1+ C2))");

[142] outtextxy(36*kx,7*ky,"Z1=((C1+ C2)+(~C0* C0))+");

[143] outtextxy(36*kx,9*ky,"((~C0* C0)*(~C2+~C1))");

[144] /*---- NE */

[145] E("~",2,6,3,3,3,kx,ky);

[146] E("~",1,6,7,3,3,kx,ky);

[147] E("~",0,6,11,3,3,kx,ky);

[148] /*---- COMMUTATOR */

[149] B("C",2,13,14,3,11,kx,ky);

[150] /*---- ELEMENTS Range 1 */

[151] E("|",1,17,14,3,3,kx,ky);

[152] E("&",1,17,18,3,3,kx,ky);

[153] E("|",2,17,22,3,3,kx,ky);

[154] /*---- ELEMENTS Range 2 */

[155] E("&",2,24,14,3,3,kx,ky);

[156] E("|",3,28,14,3,3,kx,ky);

[157] E("&",3,32,14,3,3,kx,ky);

[158] /*---- ELEMENTS Range 3 */

[159] E("|",4,24,20,7,3,kx,ky);

[160] E("~",1,32,20,3,3,kx,ky);

[161] /*---- Entry, Exit */

[162] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[163] settextjustify(CENTER_TEXT,CENTER_TEXT);

[164] setcolor(LIGHTGREEN);

[165] outtextxy( 3*kx,28*ky,"2");

[166] outtextxy( 4*kx,28*ky,"1");

[167] outtextxy( 5*kx,28*ky,"0");

[168] outtextxy( 4*kx,30*ky,"ENTRY");

[169] setcolor(YELLOW);

[170] outtextxy(31*kx,30*ky,"EXIT");

[171] outtextxy(28*kx,28*ky,"Z1");

[172] outtextxy(34*kx,28*ky,"Z0");

[173] /*---- Entry Invert. */

[174] setcolor(WHITE);

[175] outtextxy(10*kx,28*ky,"0");

[176] outtextxy(11*kx,28*ky,"1");

[177] outtextxy(12*kx,28*ky,"2");

[178] outtextxy(11*kx,30*ky,"INVER");

[179] /*----*/

[180] return 0;

[181] }

[182] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[183] int Dev2_log(int kx,int ky) /* Logic */

[184] {

[185] /*---- Entry */

[186] Bit(3*kx,26*ky,C2); /* bit C2 */

[187] Bit(4*kx,26*ky,C1); /* bit C1 */

[188] Bit(5*kx,26*ky,C0); /* bit C0 */

[189] /*---- Devices Inventor 1-3 */

[190] Bit(10*kx,26*ky,CI0); /* bit CI0 */

[191] Bit(11*kx,26*ky,CI1); /* bit CI1 */

[192] Bit(12*kx,26*ky,CI2); /* bit CI2 */

[193] /*---- Devices Range 1 */

[194] Lvd2_Or1 =CI2 | CI1; /* bit 0 */

[195] Lvd2_And1=CI0 & C0; /* bit 1 */

[196] Lvd2_Or2 =C1 | C2; /* bit 2 */

[197] Bit(23*kx,26*ky,Lvd2_Or1); /* Or 1*/

[198] Bit(22*kx,26*ky,Lvd2_And1); /* And1 */

[199] Bit(21*kx,26*ky,Lvd2_Or2); /* Or 2*/

[200] /*---- Devices Range 2 */

[201] Lvd2_And2=Lvd2_And1 & Lvd2_Or1; /* bit 2 */

[202] Lvd2_Or3 =Lvd2_Or2 | Lvd2_And1; /* bit 1 */

[203] Lvd2_And3=Lvd2_Or1 & Lvd2_Or2; /* bit 0 */

[204] Bit(25*kx,18*ky,Lvd2_And2); /* And 2 */

[205] Bit(29*kx,18*ky,Lvd2_Or3); /* Or 3 */

[206] Bit(33*kx,18*ky,Lvd2_And3); /* And 3 */

[207] /*---- Devices Range 3 */

[208] Lvd2_Inv1=~Lvd2_And3&1; /* bit 0 */

[209] Lvd2_Or4 =Lvd2_Or3 | Lvd2_And2; /* bit 1 */

[210] Bit(28*kx,26*ky,Lvd2_Or4); /* Or 4*/

[211] Bit(34*kx,26*ky,Lvd2_Inv1); /* Inv1 */

[212] /*---- Exits */

[213] Lvd2_Z0=Lvd2_Inv1;

[214] Lvd2_Z1=Lvd2_Or4;

[215] /*----*/

[216] return 0;

[217] }

[218] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[219] int Dev2_bc() /*Black Case */

[220] {

[221] /*---- Variables */

[222] /*----*/

[223] if(Flag_ini==NOT_INI)

[224] {/*--------------------Beguin block NOT_INI */

[225] /*---- Openfile BLACK CASE */

[226] if((FpBC_2=fopen("BLACKcs2","w"))==NULL)

[227] {

[228] ALERT_SIGNAL;

[229] perror("Filure openfile BLACKcs2 "); STOP;

[230] exit(EXIT_FAILURE);

[231] }

[232] /*---- Date, File entry, File exit */

[233] Get_date_pc_counted();

[234] fprintf(FpBC_2,"%s\n",Str_date_pc_counted);

[235] fprintf(FpBC_2,"File entry: %s\n",Fname_entry);

[236] fprintf(FpBC_2,"File exit: BLACKcs2\n");

[237] /*---- Regime */

[238] if(Regime_work[0]=='0')

[239] fprintf(FpBC_2,

[240] "REGIME: 0.\nEXIT\n");

[241] if(Regime_work[0]=='1')

[242] fprintf(FpBC_2,

[243] "REGIME: 1.\nHand Command\n");

[244] if(Regime_work[0]=='2')

[245] fprintf(FpBC_2,

[246] "REGIME: 2.\nHand Time - Hand Command\n");

[247] if(Regime_work[0]=='3')

[248] fprintf(FpBC_2,

[249] "REGIME: 3.\nCommands file. \n Hand Interval const.\n");

[250] if(Regime_work[0]=='4')

[251] fprintf(FpBC_2,

[252] "REGIME: 4.\nCommands file with Intervals variable.\n");

[253] if(Regime_work[0]=='5')

[254] fprintf(FpBC_2,

[255] "REGIME: 5.\nCommands file with Times.\n");

[256] if(Regime_work[0]=='6')

[257] fprintf(FpBC_2,

[258] "REGIME: 6.\nStep by step.\n");

[259] /**/

[260] fprintf(FpBC_2,

[261] "###############################################\n");

[262] }/*--------------------End block NOT_INI */

[263] /*==============================*/

[264] if(Flag_ini==YES_INI)

[265] {/*--------------------Beguin block YES_INI */

[266] /*---- Counter com.,H,M,S, ADDRESS, COMMAND */

[267] fprintf(FpBC_2,

[268] "- COUNTER - Hour - Min - Sec - Address - Commands -\n");

[269] fprintf(FpBC_2,

[270] "Counter_commands---,H,M,S\n");

[271] fprintf(FpBC_2,

[272] "%ld---%1d:%1d:%1d\n",

[273] Counter_commands,H,M,S);

[274] /**/

[275] fprintf(FpBC_2,

[276] "A2,A1,A0---,C2,C1,C0\n");

[277] fprintf(FpBC_2,

[278] "%1d%1d%1d---%1d%1d%1d\n",

[279] A2,A1,A0,C2,C1,C0);

[280] /**/

[281] fprintf(FpBC_2,

[282] "AI2,AI1,AI0---,CI2,CI1,CI0\n");

[283] fprintf(FpBC_2,

[284] "%1d%1d%1d---%1d%1d%1d\n",

[285] AI2,AI1,AI0,CI2,CI1,CI0);

[286] /**/

[287] fprintf(FpBC_2,

[288] "************ BINARY LOGIC of DEVICE ************\n");

[289] fprintf

[290] (FpBC_2,

[291] "Lvd2_Or2,Lvd2_And1,Lvd2_Or1 --------Range 1\n");

[292] fprintf(FpBC_2,

[293] "%1d%1d%1d\n",

[294] Lvd2_Or2,Lvd2_And2,Lvd2_Or1);

[295] /**/

[296] fprintf

[297] (FpBC_2,

[298] "Lvd2_And2(Lvd1_Z2),Lvd2_Or3(Lvd1_Z1),Lvd2_And3(Lvd1_Z0) -------- Range 2\n");

[299] fprintf(FpBC_2,

[300] "%1d%1d%1d\n",

[301] Lvd2_And2,Lvd2_Or3,Lvd2_And3);

[302] /**/

[303] fprintf(FpBC_2,

[304] "Lvd2_Or4(Lvd2_Z1),Lvd2_Inv1(Lvd2_Z0) --------Range 3\n");

[305] fprintf(FpBC_2,

[306] "%1d%1d\n",

[307] Lvd2_Or4,Lvd2_Inv1);

[308] /**/

[309] fprintf(FpBC_2,

[310] "###############################################\n");

[311] }/*--------------------End block YES_INI */

[312] /*----*/

[313] return 0;

[314] }

[315] /*########################################################*/

* * *