Автор работы: Пользователь скрыл имя, 22 Июня 2012 в 11:56, курсовая работа
Центр эксплуатации объектов наземной космической инфраструктуры осуществляет метеорологическое, аэрологическое и астрономо-геодезическое обеспечение выполнения космических программ на космодроме Байконур. Метеорологическое и астрономо-геодезическое обеспечение является одним из основных видов оперативного обеспечения при выполнении космических программ, полётов авиации и имеет своей целью создание условий для обеспечения безопасности их проведения. Метеорологический комплекс создан в 2009 году на базе отделов метеорологического и астрономо-геодезического обеспечения, в связи с расширением технологических функций по направлениям метеорологического и астрономо-геодезического обеспечения подготовки и запуска всех типов РКН, проведения метеорологического мониторинга района комплекса «Байконур», обеспечения полётов авиации на комплексе «Байконур».
Введение
Основная часть
1 Анализ объекта автоматизации и разработка ТЗ на проектирование АС
1.1 Анализ деятельности отдела метеорологического обеспечения
1.1.1 Специализированные функции
1.1.2 Направления ответственности комплекса
1.2 Анализ существующей технологии
1.3 Цель проектирования
2 Диагностический анализ объекта автоматизации
3 Разработка системного проекта и ТЗ на проектирование и ТЗ на разработку программного продукта
3.1.1 Общие сведения
3.1.2 Назначение системы
3.1.3 Требования к системе
3.1.3 Требования к системе
3.2 Разработка требований к функциям, выполняемым системой
3.2.1 Среда функционирования системы
3.2.3 Краткая характеристика системы
3.2.4 Основные решаемые задачи
3.2.5 Метеостанция АМС-2000
3.3 Нефункциональные требования
3.3.1 Практичность
3.3.2 Требования к надежности
3.4 Ограничения проектирования
3.4.1 Требования к видам обеспечения
3.4.2 Требования к языкам программирования
3.4.3 Требования к защите информации
3.5 Интерфейсы
3.5.1 Требования к элементам пользовательского интерфейса
3.5.2 Общие требования к пользовательским интерфейсам
4 Математические и эвристические модели принятия решений для проектируемой системы.
4.1 Оценка прогноза температуры воздуха
4.2 Оценка прогноза осадков
4.3 Оценка прогноза ветра
5 Разработка модели проектируемой системы
5.1 Схема сети «МЕТЕО» метеорологического комплекса «Космического центра «Южный»
5.2 Функциональные модели и модели данных проектируемой АС
5.2.1 Разработка модели
5.2.1.1 Краткая характеристика системы
6 Разработка модели базы данных
6.1 Требования к информации
6.1.1 Данные о работе системы
8 Разработка диалогового интерфейса пользователя
8 Разработка алгоритмов, реализация и отладка компонент программного обеспечения АС.
8.1.1 Структура программы сервер
8.1.2 Дополнительная информация
8.1.3 Структура программы клиент
8.2 Сетевые компоненты
8.3 Компонент TIMER
8.4 Создание Frame
Глоссарий
Заключение
Список используемых источников
Приложение А
Приложение Б
Приложение В
Приложение Г
Приложение Д
Приложение Е
Приложение Ж
Продолжение приложения Б
t0:=StrToInt(FormatFloat('##0'
sLabelFX32.Caption:=(
sLabelFX30.Caption:=(
sLabelFX31.Caption:=(
sLabelFX29.Caption:=(
sLabelFX22.Caption:=(
sLabelFX24.Caption:=(
sLabelFX25.Caption:=(
t01:=StrToInt(FormatFloat('##
sLabelFX23.Caption:=(
sLabelFX27.Caption:=(
sLabelFX28.Caption:=(
sLabelFX26.Caption:=(
sLabelFX17.Caption:=(
sLabelFX18.Caption:=(
sLabelFX19.Caption:=(
sLabelFX20.Caption:=(
StringList.Free;
}
ax:=4;//???????? ??????? ????? ?????????
ro1:=146;//132;//??????? ?????? ?????????
xc:=Image1.ClientWidth div 2;
yc:=Image1.ClientHeight div 2;
ro:=127;//113;//?????????? ?????? ?????????
doublebuffered:=true;//???????
x:=round(xc+ro*sin(t*pi/180));
y:=round(yc-ro*cos(t*pi/180));
x1:=round(xc+ro1*sin((t-ax)*
y1:=round(yc-ro1*cos((t-ax)*
x2:=round(xc+ro1*sin((t+ax)*
y2:=round(yc-ro1*cos((t+ax)*
dx:=round(xc+ro*sin(t1*pi/180)
dy:=round(yc-ro*cos(t1*pi/180)
dx1:=round(xc+ro1*sin((t1-ax)*
dy1:=round(yc-ro1*cos((t1-ax)*
dx2:=round(xc+ro1*sin((t1+ax)*
Продолжение приложения Б
dy2:=round(yc-ro1*cos((t1+ax)*
Anemoscope(Image1,x,y,x1,y1,
t:=Form1.t6;
t1:=Form1.t6_1;
if t=360 then t:=0;
x:=round(xc+ro*sin(t*pi/180));
y:=round(yc-ro*cos(t*pi/180));
x1:=round(xc+ro1*sin((t-ax)*
y1:=round(yc-ro1*cos((t-ax)*
x2:=round(xc+ro1*sin((t+ax)*
y2:=round(yc-ro1*cos((t+ax)*
dx:=round(xc+ro*sin(t1*pi/180)
dy:=round(yc-ro*cos(t1*pi/180)
dx1:=round(xc+ro1*sin((t1-ax)*
dy1:=round(yc-ro1*cos((t1-ax)*
dx2:=round(xc+ro1*sin((t1+ax)*
dy2:=round(yc-ro1*cos((t1+ax)*
Anemoscope(Image1,x,y,x1,y1,
sLabelFX21.Caption:=IntToStr(
sLabelFX35.Caption:=IntToStr(
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm2 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
Продолжение приложения Б
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Ussmi;
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
var
i,j:Integer;
begin
i:=0;
Series1.XValues.Order:= LoNone;
for j := 1 to Form1.StringGrid1.RowCount-1 do
begin
Series1.AddXY(i,StrToFloat(
Series2.AddXY(i,StrToFloat(
i:=i+1;
end;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm3 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
Продолжение приложения Б
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Ussmi;
{$R *.dfm}
procedure TForm3.FormActivate(Sender: TObject);
var
i,j:Integer;
begin
i:=0;
for j := 1 to Form1.StringGrid1.RowCount-1 do
begin
Series1.AddXY(i,StrToFloat(
Series2.AddXY(i,StrToFloat(
i:=i+1;
end;
end;
end.
unit Ussmi;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fr1, fr2, sSkinManager, sDialogs, ExtCtrls, sPanel, fr3, fr4,
StdCtrls, sLabel, sEdit, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent,
IdComponent, IdTCPServer, Grids, sButton, TeeProcs, TeEngine, Chart,
Series, Buttons, sSpeedButton;
type
TForm1 = class(TForm)
sSkinManager1: TsSkinManager;
Frame11: TFrame1;
IdTCPServer1: TIdTCPServer;
IdAntiFreeze1: TIdAntiFreeze;
sEdit1: TsEdit;
sEdit2: TsEdit;
Продолжение приложения Б
sLabel1: TsLabel;
sLabel2: TsLabel;
StringGrid1: TStringGrid;
Frame21: TFrame2;
Label1: TLabel;
Label2: TLabel;
sSpeedButton1: TsSpeedButton;
procedure FormCreate(Sender: TObject);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure Frame11sWebLabel21Click(
procedure Frame11sWebLabel27Click(
procedure sSpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
t6,t6_1,t18,t18_1:integer;
//s6,s18:String;
{ Public declarations }
end;
var
Form1: TForm1;
//StringList:TStringList;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.Active:=False;
IdTCPServer1.Bindings.Clear;
IdTCPServer1.Bindings.Add.
IdTCPServer1.Bindings.Add.IP:=
IdTCPServer1.Active:=True;
end;
procedure TForm1.IdTCPServer1Execute(
var
s:TStringStream;
Продолжение приложения Б
StringList:TStringList;
str,s6,s18:String;
i,j:Integer;
begin
s:=TStringStream.Create('');
AThread.Connection.ReadStream(
s.Position:=0;
str:=s.ReadString(s.Size)+' ';
s.Free;
case StrToInt(Copy(str,1,Pos(' ',str)-1)) of
//============================
6:begin
s6:=str;
Label1.Caption:=s6;
StringList:=TStringList.
repeat
StringList.Add(Copy(s6,1,Pos(' ',s6)-1));
Delete(s6,1,Pos(' ',s6));
StringGrid1.Cells[i,
i:=i+1;
until s6='';
StringGrid1.RowCount:=
Frame11.sLabelFX36.Caption:=(
Frame11.sLabelFX33.Caption:=(
Frame11.sLabelFX34.Caption:=(
t6:=StrToInt(FormatFloat('##0'
Frame11.sLabelFX32.Caption:=(
Frame11.sLabelFX30.Caption:=(
Frame11.sLabelFX31.Caption:=(
Frame11.sLabelFX29.Caption:=(
Frame11.sLabelFX22.Caption:=(
Frame11.sLabelFX24.Caption:=(
Frame11.sLabelFX25.Caption:=(
t6_1:=StrToInt(FormatFloat('##
Продолжение приложения Б
Frame11.sLabelFX23.Caption:=(
Frame11.sLabelFX27.Caption:=(
Frame11.sLabelFX28.Caption:=(
Frame11.sLabelFX26.Caption:=(
Frame11.sLabelFX17.Caption:=(
Frame11.sLabelFX18.Caption:=(
Frame11.sLabelFX19.Caption:=(
Frame11.sLabelFX20.Caption:=(
StringList.Free;
end;
//============================
18:begin
s18:=str;
Label2.Caption:=s18;
StringList:=TStringList.
repeat
StringList.Add(Copy(s18,1,Pos(
Delete(s18,1,Pos(' ',s18));
StringGrid1.Cells[i,
i:=i+1;
until s18='';
StringGrid1.RowCount:=
Frame21.sLabelFX36.Caption:=(
Frame21.sLabelFX33.Caption:=(
Frame21.sLabelFX34.Caption:=(
t18:=StrToInt(FormatFloat('##
Frame21.sLabelFX32.Caption:=(
Frame21.sLabelFX30.Caption:=(
Frame21.sLabelFX31.Caption:=(
Frame21.sLabelFX29.Caption:=(
Frame21.sLabelFX22.Caption:=(
Frame21.sLabelFX24.Caption:=(
Frame21.sLabelFX25.Caption:=(
t18_1:=StrToInt(FormatFloat('#
Frame21.sLabelFX23.Caption:=(
Продолжение приложения Б
Frame21.sLabelFX27.Caption:=(
Frame21.sLabelFX28.Caption:=(
Frame21.sLabelFX26.Caption:=(
Frame21.sLabelFX17.Caption:=(
Frame21.sLabelFX18.Caption:=(
Frame21.sLabelFX19.Caption:=(
Frame21.sLabelFX20.Caption:=(
StringList.Free;
end;
end;
//str:=s.ReadString(s.Size)+' ';
//Label2.Caption:=(sLabel11.
end;
procedure TForm1.
begin
Form2.ShowModal;
end;
procedure TForm1.
begin
Form3.ShowModal;
end;
procedure TForm1.sSpeedButton1Click(
begin
IdTCPServer1.Active:=False;
IdTCPServer1.Bindings.Clear;
IdTCPServer1.Bindings.Add.
IdTCPServer1.Bindings.Add.IP:=
IdTCPServer1.Active:=True;
end;
end.
Приложение В
(Обязательное)
Рисунок 15 – интерфейс программы клиент
Приложение Г
(листинг программы)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CoolTrayIcon, StdCtrls, Menus, ImgList, Buttons, sEdit,
sComboBox, sGroupBox, sSkinManager, sLabel, sSpeedButton,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, Idexception, ExtCtrls,
IdAntiFreezeBase, IdAntiFreeze, sButton, sDialogs, error_off, IniFiles;
type
TForm1 = class(TForm)
CoolTrayIcon1: TCoolTrayIcon;
PopupMenu1: TPopupMenu;
Show1: TMenuItem;
Close1: TMenuItem;
Min1: TMenuItem;
ImageList1: TImageList;
sGroupBox1: TsGroupBox;
sGroupBox2: TsGroupBox;
sGroupBox3: TsGroupBox;
sComboBox1: TsComboBox;
sComboBox2: TsComboBox;
sGroupBox4: TsGroupBox;
sSkinManager1: TsSkinManager;
sLabelFX1: TsLabelFX;
IdTCPClient1: TIdTCPClient;
Timer1: TTimer;
sLabelFX2: TsLabelFX;
IdAntiFreeze1: TIdAntiFreeze;
sComboBox3: TsComboBox;
sGroupBox5: TsGroupBox;
sButton1: TsButton;
sOpenDialog1: TsOpenDialog;
sSpeedButton1: TsSpeedButton;
gsCatcher1: TgsCatcher;
procedure ReadParams; // процедура чтения параметров
Продолжение приложения Г
procedure WriteParams; // процедура записи параметров
procedure Show1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Close1Click(Sender: TObject);
procedure Min1Click(Sender: TObject);
procedure sSpeedButton1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure sButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
ps_T:String;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ReadParams;
var
IniFile:TIniFile; // объявление переменной, через которую будут обрабатываться данные
begin
IniFile:=TIniFile.Create('
Form1.Top:=IniFile.
Form1.Left:=IniFile.
Form1.ps_T:=IniFile.
//Form1.Width:=IniFile.
//Edit1.Text:=IniFile.
ComboBox1.ItemIndex:=IniFile.
sComboBox2.ItemIndex:=IniFile.
sComboBox3.ItemIndex:=IniFile.
IniFile.Free; // если сами создаем, то сами уничтожаем.
end;
Продолжение приложения Г
procedure TForm1.WriteParams;
var
IniFile:TIniFile;
begin
IniFile:=TIniFile.Create('
IniFile.WriteInteger('FORM1','
IniFile.WriteInteger('FORM1','
IniFile.WriteString('VAR','
//IniFile.WriteInteger('FORM1'
//IniFile.WriteString('FORM1',
IniFile.WriteInteger('FORM1','
IniFile.WriteInteger('FORM1','
IniFile.WriteInteger('FORM1','
IniFile.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ReadParams;
Application.CreateHandle;
ShowWindow(Application.Handle, SW_HIDE);
Application.ShowMainForm := FALSE;
Form1.Min1.Enabled:=False;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteParams;
end;
procedure TForm1.Show1Click(Sender: TObject);
begin
Application.CreateHandle;
Application.ShowMainForm:=
CoolTrayIcon1.ShowMainForm;
ShowWindow(Application.Handle, SW_HIDE);
Form1.Show1.Enabled:=False;
Form1.Min1.Enabled:=True;
end;
Продолжение приложения Г
procedure TForm1.Min1Click(Sender: TObject);
begin
Application.Minimize;
Cooltrayicon1.HideMainForm;
Информация о работе Автоматизированная система управления метеорологических станций