Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Режим №2. Выведена в ремонт ВЛ 220 кВ «Агломерат 1» ⇐ ПредыдущаяСтр 3 из 3
Для перевода электроустановки в режим №2 и, обратно, в нормальный режим работы, пользователь должен выполнить операции согласно последовательности, указанной в таблице 3. Таблица 3
Состояние коммутационных аппаратов должно соответствовать схеме, приведенной на рис. 6.2. Рис. 6.2. Выведена в ремонт ВЛ 220 кВ «Агломерат 1» Режим №3. Выведена в ремонт ВЛ 220 кВ «Агломерат 2» Для перевода электроустановки в режим №3 и, обратно, в нормальный режим работы, пользователь должен выполнить операции, согласно последовательности, указанной в таблице 4. Таблица 4
Состояние коммутационных аппаратов должно соответствовать схеме, приведенной на рис. 6.3. Рис. 6.3. Выведена в ремонт ВЛ 220 кВ «Агломерат 2» Режим №4. Выведен в ремонт Т1 63 мВа Для перевода электроустановки в режим №4 и, обратно, в нормальный режим работы, пользователь должен выполнить операции, согласно последовательности, указанной в таблице 5. Таблица 5
Состояние коммутационных аппаратов должно соответствовать схеме, приведенной на рис. 6.4. Рис. 6.4. Выведен в ремонт Т1 63 мВа Режим №5. Выведен в ремонт Т2 63 мВа Для перевода электроустановки в режим №5 и, обратно, в нормальный режим работы, пользователь должен выполнить операции, согласно последовательности, указанной в таблице 6. Таблица 6
Состояние коммутационных аппаратов должно соответствовать схеме, приведенной на рис. 6.5. Рис. 6.5. Выведен в ремонт Т2 63 мВа Режим №6. Выведен в ремонт Т3 100 мВа
Для перевода электроустановки в режим №6 и, обратно, в нормальный режим работы, пользователь должен выполнить операции, согласно последовательности, указанной в таблице 7. Таблица 7
Состояние коммутационных аппаратов должно соответствовать схеме, приведенной на рис. 6. 6. Рис. 5.6. Выведен в ремонт Т3 100 мВа Приложение Б. Листинг основного модуля программы unit MainMenu;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Gauges, Menus, ComCtrls, User1, Report, NewScen, ImgList, Report1;
type TForm1 = class(TForm) TaskList: TListBox; RunBtn: TButton; ExtBtn: TButton; MainMenu1: TMainMenu; Menu1: TMenuItem; Menu4: TMenuItem; Menu41: TMenuItem; Menu5: TMenuItem; Bevel1: TBevel; StatusBar1: TStatusBar; Image1: TImage; ODT2: TImage; ODT1: TImage; BB50: TImage; ODT3: TImage; PBB2: TImage; MBB2: TImage; CMB1: TImage; MBB1: TImage; ABR1: TImage; TRZ2: TImage; TRZ1: TImage; TRZ4: TImage; TRZ3: TImage; MBB4: TImage; CMB2: TImage; MBB3: TImage; SRZ2: TImage; SRZ9: TImage; SR10: TImage; SRZ1: TImage; SRZ4: TImage; SR37: TImage; SR20: TImage; SRZ3: TImage; ABR2: TImage; ResultBtn: TButton; Label1: TLabel; HelpBtn: TButton; New: TMenuItem; N2: TMenuItem; Exit: TMenuItem; Image2: TImage; StaticText1: TStaticText; Menu52: TMenuItem; Label2: TLabel; Menu2: TMenuItem; Menu21: TMenuItem; Menu22: TMenuItem; procedure ExtBtnClick(Sender: TObject); procedure TaskListMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormActivate(Sender: TObject); procedure RunBtnClick(Sender: TObject); procedure Menu41Click(Sender: TObject); procedure MBB1Click(Sender: TObject); procedure MBB2Click(Sender: TObject); procedure MBB3Click(Sender: TObject); procedure MBB4Click(Sender: TObject); procedure CMB1Click(Sender: TObject); procedure CMB2Click(Sender: TObject); procedure BB50Click(Sender: TObject); procedure PBB2Click(Sender: TObject); procedure TRZ1Click(Sender: TObject); procedure TRZ2Click(Sender: TObject); procedure TRZ3Click(Sender: TObject); procedure TRZ4Click(Sender: TObject); procedure SRZ1Click(Sender: TObject); procedure SRZ2Click(Sender: TObject); procedure SRZ3Click(Sender: TObject); procedure SRZ4Click(Sender: TObject); procedure SRZ9Click(Sender: TObject); procedure SR10Click(Sender: TObject); procedure SR20Click(Sender: TObject); procedure SR37Click(Sender: TObject); procedure ODT1Click(Sender: TObject); procedure ODT2Click(Sender: TObject); procedure ODT3Click(Sender: TObject); procedure ABR1Click(Sender: TObject); procedure ABR2Click(Sender: TObject); procedure ResultBtnClick(Sender: TObject); procedure HelpBtnClick(Sender: TObject); procedure NewClick(Sender: TObject); procedure Menu52Click(Sender: TObject); procedure Menu21Click(Sender: TObject); procedure Menu22Click(Sender: TObject);
private { Private declarations } public { Public declarations }
end;
TStringList1 = class (TStringList); TMyZap=class(TObject) FNo: Integer; FImage: ShortString; FState: Integer; FComment: ShortString; constructor Create(No: Integer; Image: ShortString; State: Integer; Comment: ShortString); end;
var Form1: TForm1; TaskNumber: Integer; WorkMode: Integer; List1: TStringList1; ActList: TList; Prot: TStringList; Zap: TMyZap; Switch: TImage; TaskName: string; Error: integer; Help: integer; Count: Integer; F: array [0..24] of boolean; E: array [0..24] of boolean; implementation
uses Results;
{$R *.DFM}
constructor TMyZap.Create(No: Integer; Image: ShortString; State: Integer; Comment: ShortString); begin inherited Create; FNo: =No; FImage: =Image; FState: =State; FComment: =Comment; end;
procedure SWState(AOwner: TImage; i: integer); begin if F[i]=false then begin with AOwner.Canvas do begin Pen.Color: =clWhite; MoveTo(6, 1); LineTo(6, 17); Pen.Width: =2; Pen.Color: =clBlack; Rectangle(1, 1, 17, 17); MoveTo(6, 17); LineTo(15, 1); end; F[i]: =true; end else begin with AOwner.Canvas do begin Pen.Color: =clWhite; MoveTo(6, 17); LineTo(15, 1); Pen.Width: =2; Pen.Color: =clBlack; Rectangle(1, 1, 17, 17); MoveTo(6, 1); LineTo(6, 17); end; F[i]: =false; end; end;
procedure ABRState(AOwner: TImage; i: integer); begin if F[i]=False then begin with AOwner.Canvas do begin Brush.Color: =clWhite; FloodFill(8, 8, clBlack, fsSurface); Pen.Width: =2; Pen.Color: =clBlack; MoveTo(1, 15); LineTo(8, 1); MoveTo(8, 1); LineTo(17, 15); MoveTo(17, 15); LineTo(1, 15); end; F[i]: =True; end else begin with AOwner.Canvas do begin FloodFill(8, 8, clWhite, fsSurface); Pen.Width: =2; Pen.Color: =clBlack; MoveTo(1, 15); LineTo(8, 1); MoveTo(8, 1); LineTo(17, 15); MoveTo(17, 15); LineTo(1, 15); Brush.Color: =clBlack; FloodFill(8, 8, clBlack, fsBorder); end; F[i]: =False; end; end;
procedure MVState(AOwner: TImage; i: integer); begin if F[i]=false then begin with AOwner.Canvas do begin Pen.Color: =clWhite; MoveTo(9, 6); LineTo(9, 11); Pen.Width: =2; Pen.Color: =clBlack; Rectangle(1, 1, 17, 17); MoveTo(6, 8); LineTo(11, 8); end; F[i]: =true; end else begin with AOwner.Canvas do begin Pen.Color: =clWhite; MoveTo(6, 8); LineTo(11, 8); Pen.Width: =2; Pen.Color: =clBlack; Rectangle(1, 1, 17, 17); MoveTo(9, 6); LineTo(9, 11); end; F[i]: =false; end; end;
function Analyze(AOwner: TComponent): boolean; begin Zap: =ActList.First; if WorkMode=0 then if (Zap.FImage=AOwner.Name) then begin if Zap.FImage< > '0' then ActList.Delete(ActList.IndexOf(ActList.First)); Result: =true; Form1.Label1.Caption: =''; Prot.Append(Zap.FComment); end else begin Form1.Label1.Caption: =' Ошибка'; Prot.Append('Ошибка, '+Zap.FComment); Error: =Error+1; Result: =false; end else Count: =Count+1; Form1.ResultBtn.Visible: =True; end;
{Считывание информации дла решения задач}
procedure Read; var Fil: textfile; s: string; j: integer; begin for j: =1 to 10 do begin s: ='Info\'+IntToStr(j)+'.str'; assign(fil, s); reset(fil); readln(fil, s); Form1.TaskList.Items.Insert(j-1, s); end; end;
procedure ReadInfo(Num: integer); var Fil: textfile; s, s1: string; i, j: integer; begin ActList: =TList.Create; s: ='Info\'+IntToStr(Num)+'.str'; assign(fil, s); reset(fil); readln(fil, s); readln(fil, s); for i: =0 to 24 do if s[i+1]='1' then F[i]: =true else F[i]: =false; readln(fil, s); for i: =0 to 24 do if s[i+1]='1' then E[i]: =true else E[i]: =false; for i: =1 to 15 do begin readln(fil, s); s1: =s; for j: =1 to 7 do s1[j]: =' '; ActList.Add(TMyZap.Create(StrToInt(s[1]+s[2]), s[3]+s[4]+s[5]+s[6], StrToInt(s[7]), s1)); end; closefile(fil); end;
procedure TForm1.FormActivate(Sender: TObject); begin Form1.ResultBtn.Visible: =False; Form1.HelpBtn.Visible: =False; Form1.Label2.Visible: =false; Image1.Visible: =False; Image2.Visible: =False; StaticText1.Visible: =False; Label2.Visible: =False; StatusBar1.Panels[2].Text: ='Выберите режим работы и задачу.'; StatusBar1.Panels[3].Text: ='Режим работы: '; TaskList.ItemIndex: =0; TaskNumber: =0; Read; User1.User.ShowModal; end;
procedure TForm1.ExtBtnClick(Sender: TObject); begin if Prot< > nil then Prot.Clear; if ActList< > nil then ActList.Clear; if Prot< > nil then Prot.Clear; Application.Terminate; end;
procedure TForm1.TaskListMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Point: TPoint; begin Point.X: =Y; Point.Y: =Y; TaskNumber: =TaskList.ItemAtPos(Point, true); StatusBar1.Panels[2].Text: =Form1.TaskList.Items.Strings[TaskNumber]; StatusBar1.Panels[1].Text: ='№'+IntToStr(1+TaskList.ItemAtPos(Point, true)); end;
procedure TForm1.RunBtnClick(Sender: TObject); var s: string; begin TaskList.Visible: =False; if WorkMode=0 then begin StatusBar1.Panels[3].Text: ='Режим работы: Тренировка'; Form1.HelpBtn.Visible: =true; Form1.Label1.Visible: =true; Form1.Label2.Visible: =true; ResultBtn.Caption: ='Результаты'; end; Image1.Visible: =true; Image2.Visible: =true; StaticText1.Visible: =true; ReadInfo(TaskNumber+1); Error: =0; Help: =0; Form1.Caption: =TaskList.Items[TaskNumber]; {Начальные условия} SWState(ODT2, 0); SWState(ODT1, 1); SWState(ODT3, 3); MVState(MBB1, 10); MVState(MBB2, 7); MVState(MBB3, 19); MVState(MBB4, 17); MVState(CMB1, 8); MVState(CMB2, 18); MVState(PBB2, 4); MVState(BB50, 2); SWState(TRZ1, 6); SWState(TRZ2, 5); SWState(TRZ3, 16); SWState(TRZ4, 15); SWState(SRZ1, 14); SWState(SRZ2, 11); SWState(SRZ3, 24); SWState(SRZ4, 20); SWState(SRZ9, 12); SWState(SR10, 13); SWState(SR20, 23); SWState(SR37, 21); ABRState(ABR1, 9); ABRState(ABR2, 22); Prot: =TStringList.Create; if WorkMode=0 then s: =(' тренировки') else s: =(' экзамена'); Prot.Append(' Протокол'+s); Prot.Append(' ---------------------------'); Prot.Append('Фамилия: '+User1.N1); Prot.Append('Имя: '+User1.N2); Prot.Append('Отчество: '+User1.N3); Prot.Append(' ЗАДАЧА: '+TaskList.Items[TaskNumber]); Prot.Append(' --------------------------------------------'); if WorkMode=0 then s: =(' прохождения тренировки: ') else s: =(' сдачи экзамена: '); Prot.Append('Дата '+s+DateToStr(Date)); end;
procedure TForm1.Menu41Click(Sender: TObject); begin User.ShowModal; end;
procedure TForm1.MBB1Click(Sender: TObject); begin if Analyze(MBB1)=True then MVState(MBB1, 10) else MVState(MBB1, 10); if F[10]=true then end;
procedure TForm1.MBB2Click(Sender: TObject); begin if Analyze(MBB2)=True then MVState(MBB2, 7) else MVState(MBB2, 7); end;
procedure TForm1.MBB3Click(Sender: TObject); begin if Analyze(MBB3)=True then MVState(MBB3, 19) else MVState(MBB3, 19); end;
procedure TForm1.MBB4Click(Sender: TObject); begin if Analyze(MBB4)=True then MVState(MBB4, 17) else MVState(MBB4, 17); end;
procedure TForm1.CMB1Click(Sender: TObject); begin if Analyze(CMB1)=True then MVState(CMB1, 8) else MVState(CMB1, 8); end;
procedure TForm1.CMB2Click(Sender: TObject); begin if Analyze(CMB2)=True then MVState(CMB2, 18) else MVState(CMB2, 18); end;
procedure TForm1.BB50Click(Sender: TObject); begin if Analyze(BB50)=True then MVState(BB50, 2) else MVState(BB50, 2); end;
procedure TForm1.PBB2Click(Sender: TObject); begin if Analyze(PBB2)=True then MVState(PBB2, 4) else MVState(PBB2, 4); end;
procedure TForm1.TRZ1Click(Sender: TObject); begin if Analyze(TRZ1)=True then SWState(TRZ1, 6) else SWState(TRZ1, 6); end;
procedure TForm1.TRZ2Click(Sender: TObject); begin if Analyze(TRZ2)=True then SWState(TRZ2, 5) else SWState(TRZ2, 5); end;
procedure TForm1.TRZ3Click(Sender: TObject); begin if Analyze(TRZ3)=True then SWState(TRZ3, 16) else SWState(TRZ3, 16); end;
procedure TForm1.TRZ4Click(Sender: TObject); begin if Analyze(TRZ4)=True then SWState(TRZ4, 15) else SWState(TRZ4, 15); end;
procedure TForm1.SRZ1Click(Sender: TObject); begin if Analyze(SRZ1)=True then SWState(SRZ1, 14) else SWState(SRZ1, 14); end;
procedure TForm1.SRZ2Click(Sender: TObject); begin if Analyze(SRZ2)=True then SWState(SRZ2, 11) else SWState(SRZ2, 11); end;
procedure TForm1.SRZ3Click(Sender: TObject); begin if Analyze(SRZ3)=True then SWState(SRZ3, 24) else SWState(SRZ3, 24); end;
procedure TForm1.SRZ4Click(Sender: TObject); begin if Analyze(SRZ4)=True then SWState(SRZ4, 20) else SWState(SRZ4, 20); end;
procedure TForm1.SRZ9Click(Sender: TObject); begin if Analyze(SRZ9)=True then SWState(SRZ9, 12) else SWState(SRZ9, 12); end;
procedure TForm1.SR10Click(Sender: TObject); begin if Analyze(SR10)=True then SWState(SR10, 13) else SWState(SR10, 13); end;
procedure TForm1.SR20Click(Sender: TObject); begin if Analyze(SR20)=True then SWState(SR20, 23) else SWState(SR20, 23); end;
procedure TForm1.SR37Click(Sender: TObject); begin if Analyze(SR37)=True then SWState(SR37, 21) else SWState(SR37, 21); end;
procedure TForm1.ODT1Click(Sender: TObject); begin if Analyze(ODT1)=True then SWState(ODT1, 1) else SWState(ODT1, 1); end;
procedure TForm1.ODT2Click(Sender: TObject); begin if Analyze(ODT2)=True then SWState(ODT2, 0) else SWState(ODT2, 0); end;
procedure TForm1.ODT3Click(Sender: TObject); begin if Analyze(ODT3)=True then SWState(ODT3, 3) else SWState(ODT3, 3); end;
procedure TForm1.ABR1Click(Sender: TObject); begin if Analyze(ABR1)=True then ABRState(ABR1, 9) else ABRState(ABR1, 9);
end;
procedure TForm1.ABR2Click(Sender: TObject); begin if Analyze(ABR2)=True then ABRState(ABR2, 22) else ABRState(ABR2, 22); end;
procedure TForm1.ResultBtnClick(Sender: TObject); var i: integer; s: string; begin Error: =0; Count: =0; if WorkMode=1 then begin for i: =0 to 24 do if E[i]=F[i] then Error: =Error+1; if Error=0 then s: ='Хорошо'; if Error=1 then s: ='Удовлетворительно'; if Error> 2 then s: ='Неудовлетворительно'; Results.Result.Label1.Caption: ='Оценка: '+s; Prot.Append('Оценка: '+s); Results.Result.ShowModal; TaskList.Visible: =True; end; if (WorkMode=0)and(Zap.FNo=0)and(Zap.FImage='0000')and(Zap.FState=0) then begin Prot.Append('Количество ошибок: '+IntToStr(Error)); Prot.Append('Количество обращений к подсказке: '+IntToStr(Help)); Results.Result.Label1.Caption: ='Количество ошибок: '+IntToStr(Error); Results.Result.Label2.Caption: ='Количество обращений к подсказке: '+IntToStr(Help); Results.Result.ShowModal; Actlist.Clear; TaskList.Visible: =True; end; end;
procedure TForm1.HelpBtnClick(Sender: TObject); begin if StatusBar1.Panels[1].Text='№' then Label1.Caption: =' Выберите задачу' else begin Zap: =ActList.First; Label1.Caption: =Zap.FComment; Help: =Help+1; end; end;
procedure TForm1.NewClick(Sender: TObject); begin FormScene.Position: =poScreenCenter; FormScene.ShowModal; end;
procedure TForm1.Menu52Click(Sender: TObject); var s: string; i: integer; begin Report.ReportForm.ProtList.Clear; if Prot< > nil then begin for i: =0 to Prot.Count-1 do Report.ReportForm.ProtList.Items.Append(Prot.Strings[i]); s: =TimeToStr(Now); if FileExists('Info\Report.txt') then Prot.SaveToFile('Info\Report'+s[7]+'.txt') else Prot.SaveToFile('Info\Report.txt'); ReportForm.ShowModal; end; end;
procedure TForm1.Menu21Click(Sender: TObject); begin WorkMode: =0; StatusBar1.Panels[3].Text: ='Режим работы: Тренировка'; Form1.HelpBtn.Visible: =true; Form1.Label1.Visible: =true; Form1.Label2.Visible: =true; ResultBtn.Caption: ='Результаты'; end;
procedure TForm1.Menu22Click(Sender: TObject); begin WorkMode: =1; StatusBar1.Panels[3].Text: ='Режим работы: Экзамен'; Form1.HelpBtn.Visible: =false; Form1.Label1.Visible: =false; Form1.Label2.Visible: =false; ResultBtn.Caption: ='Готово'; end;
end.
|
Последнее изменение этой страницы: 2019-10-03; Просмотров: 177; Нарушение авторского права страницы