Автоматизированная система обработки сигналов, передаваемых датчиками, установленными на магистральном насосном агрегате (Текст программы курсового проекта)

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Фрагмент текста работы

program Project1;

uses

SysUtils,

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit5 in 'Unit5.pas' {Form5},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4},

Unit6 in 'Unit6.pas' {Form6};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm5, Form5);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(TForm6, Form6);

Application.Run;

end.


unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Unit2, Unit3, Unit4, Unit5, Unit6, Menus, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Tools: TMenuItem;

Optoins1: TMenuItem;

Exit1: TMenuItem;

N1: TMenuItem;

SingleLine1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

COM1: TMenuItem;

N11: TMenuItem;

A1: TEdit;

B1: TEdit;

C1: TEdit;

D1: TEdit;

E1: TEdit;

G1: TEdit;

F1: TEdit;

H1: TEdit;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

S8: TShape;

S6: TShape;

S2: TShape;

S5: TShape;

S1: TShape;

S4: TShape;

S7: TShape;

S3: TShape;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Optoins1Click(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure SingleLine1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure COM1Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Form_:byte;

HFile: Text;

RecivedStr: String;

Diapp,s : array [1..8] of String;

Menu_:1..8;

Adres,ports: string;

implementation

{$R *.dfm}

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form2.timer1.Enabled:=False;

form2.Comport.StopComm;

end;

procedure TForm1.Optoins1Click(Sender: TObject);

begin

Form1.Enabled:=false;

Form2.Visible:=True;

Form2.Enabled:=True;

Form2.show

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

halt(0);

end;

procedure TForm1.SingleLine1Click(Sender: TObject);

begin

Form2.timer1.Enabled:=False;

Form1.Enabled:=false;

Form3.Visible:=True;

Form3.Enabled:=True;

Form3.show

end;

procedure TForm1.N3Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Давление на входе';

Form4.Label3.Font.Size:=7;

Form4.Label4.Font.Size:=7;

Form4.Label3.Font.Style:=[];

Form4.Label4.Font.Style:=[];

Form4.Label5.Caption:='2';

Form4.Label6.Caption:='2';

Form4.Label7.Caption:='';

Form4.Label8.Caption:='';

Form4.Label3.Caption:='кгс/см';

Form4.Label4.Caption:='кгс/см';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=1;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N4Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Давление на выходе';

Form4.Label3.Font.Size:=7;

Form4.Label4.Font.Size:=7;

Form4.Label3.Font.Style:=[];

Form4.Label4.Font.Style:=[];

Form4.Label5.Caption:='2';

Form4.Label6.Caption:='2';

Form4.Label7.Caption:='';

Form4.Label8.Caption:='';

Form4.Label3.Caption:='кгс/см';

Form4.Label4.Caption:='кгс/см';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=2;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N10Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Давление масла в маслосистеме';

Form4.Label3.Font.Size:=7;

Form4.Label4.Font.Size:=7;

Form4.Label3.Font.Style:=[];

Form4.Label4.Font.Style:=[];

Form4.Label5.Caption:='2';

Form4.Label6.Caption:='2';

Form4.Label7.Caption:='';

Form4.Label8.Caption:='';

Form4.Label3.Caption:='кгс/см';

Form4.Label4.Caption:='кгс/см';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=3;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N5Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Температура масла в маслосистеме';

Form4.Label3.Font.Size:=9;

Form4.Label4.Font.Size:=9;

Form4.Label3.Font.Style:=[];

Form4.Label4.Font.Style:=[];

Form4.Label7.Caption:='o';

Form4.Label8.Caption:='o';

Form4.Label5.Caption:='';

Form4.Label6.Caption:='';

Form4.Label3.Caption:='C';

Form4.Label4.Caption:='C';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=4;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N7Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Температура в насосной';

Form4.Label3.Font.Size:=9;

Form4.Label4.Font.Size:=9;

Form4.Label3.Font.Style:=[];

Form4.Label4.Font.Style:=[];

Form4.Label7.Caption:='o';

Form4.Label8.Caption:='o';

Form4.Label5.Caption:='';

Form4.Label6.Caption:='';

Form4.Label3.Caption:='C';

Form4.Label4.Caption:='C';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=5;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N8Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Загазованность в насосной';

Form4.Label3.Font.Size:=7;

Form4.Label4.Font.Size:=7;

Form4.Label3.Font.Style:=[fsBold];

Form4.Label4.Font.Style:=[fsBold];

Form4.Label7.Caption:='';

Form4.Label8.Caption:='';

Form4.Label5.Caption:='';

Form4.Label6.Caption:='';

Form4.Label3.Caption:='%';

Form4.Label4.Caption:='%';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=6;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N6Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Температура корпуса агрегата';

Form4.Label3.Font.Size:=9;

Form4.Label4.Font.Size:=9;

Form4.Label7.Caption:='o';

Form4.Label8.Caption:='o';

Form4.Label5.Caption:='';

Form4.Label6.Caption:='';

Form4.Label3.Caption:='C';

Form4.Label4.Caption:='C';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=7;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.N9Click(Sender: TObject);

var i:byte;

begin

Form2.timer1.Enabled:=False;

Form4.Caption:='Вибрация на подшипниках';

Form4.Label3.Font.Size:=7;

Form4.Label4.Font.Size:=7;

Form4.Label7.Caption:='';

Form4.Label8.Caption:='';

Form4.Label5.Caption:='';

Form4.Label6.Caption:='';

Form4.Label3.Caption:='мм/с';

Form4.Label4.Caption:='мм/с';

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

Rewrite(HFile);

CloseFile(HFile);

Form1.Enabled:=false;

Menu_:=8;

Form4.Visible:=True;

Form4.Enabled:=True;

Form4.Show;

end;

procedure TForm1.COM1Click(Sender: TObject);

begin

Form2.timer1.Enabled:=False;

Form1.Enabled:=false;

Form5.Visible:=True;

Form5.Enabled:=True;

Form5.show

end;

procedure TForm1.N11Click(Sender: TObject);

begin

Form2.timer1.Enabled:=False;

Form1.Enabled:=false;

Form6.Visible:=True;

Form6.Enabled:=True;

Form6.show

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

A1.Text:='ERROR!!!';

B1.Text:='ERROR!!!';

C1.Text:='ERROR!!!';

D1.Text:='ERROR!!!';

E1.Text:='ERROR!!!';

F1.Text:='ERROR!!!';

G1.Text:='ERROR!!!';

H1.Text:='ERROR!!!';

end;

end.


unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Comm32;

type

TForm2 = class(TForm)

A: TEdit;

B: TEdit;

C: TEdit;

D: TEdit;

E: TEdit;

F: TEdit;

G: TEdit;

H: TEdit;

Check1: TCheckBox;

Check2: TCheckBox;

Check3: TCheckBox;

Check4: TCheckBox;

Check5: TCheckBox;

Check6: TCheckBox;

Check7: TCheckBox;

Check0: TCheckBox;

Run: TButton;

Stop: TButton;

Exit: TButton;

SelAll: TButton;

ClrAll: TButton;

Timer1: TTimer;

Comport: TComm32;

Label1: TLabel;

Label2: TLabel;

procedure RunClick(Sender: TObject);

procedure ExitClick(Sender: TObject);

procedure ComportReceiveData(Sender: TObject; Buffer: Pointer;

BufferLength: Word);

procedure Run1;

procedure Run2;

procedure Run3;

procedure StopClick(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure SelAllClick(Sender: TObject);

procedure ClrAllClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

iRun,lab : Boolean;

Numedit,i : integer;

NumTr,write_,cod,cod1 : string;

Fcode : Text;

implementation

uses Unit1, Unit3, Unit5;

{$R *.dfm}

procedure TForm2.Run1;

begin

cod:='$'+InttoHex(StrtoInt(Adres),2)+'5'+cod;

Comport.WriteCommData(PChar(cod+#13#10), Length(cod)+2);

end;

procedure TForm2.Run2;

begin

write_:='#'+InttoHex(StrtoInt(Adres),2)+IntToStr(Numedit);

Comport.WriteCommData(PChar(write_+#13#10), Length(write_)+2);

end;

procedure TForm2.Run3;

begin

write_:='$'+InttoHex(StrtoInt(Adres),2)+'6';

Comport.WriteCommData(PChar(write_+#13#10), Length(write_)+2);

end;

procedure TForm2.RunClick(Sender: TObject);

begin

Numedit:=0;

Run.Enabled:=False;

Stop.Enabled:=True;

timer1.Enabled:=True;

end;

procedure TForm2.ComportReceiveData(Sender: TObject; Buffer: Pointer;

BufferLength: Word);

var

Tr : Boolean;

index,ma,mi : string;

Rec : Currency;

begin

RecivedStr:=PChar(Buffer);

case Form_ of

1: if iRun then

begin

iRun:=False;

Delete(RecivedStr,1,3);

Delete(RecivedStr,Length(RecivedStr),1);

RecivedStr:='-'+RecivedStr;

AssignFile(Fcode,'cod.ini');

Reset(Fcode);

for i:=1 to 256 do

begin

index:='';

Readln(Fcode,index);

if RecivedStr=copy(index,length(index)-2,3) then

begin

cod:=copy(index,1,length(index)-3);

break;

end;

end;

CloseFile(Fcode);

for i:=1 to length(cod) do

begin

case cod[i] of

'0': Check0.Checked:=True;

'1': Check1.Checked:=True;

'2': Check2.Checked:=True;

'3': Check3.Checked:=True;

'4': Check4.Checked:=True;

'5': Check5.Checked:=True;

'6': Check6.Checked:=True;

'7': Check7.Checked:=True;

end

end;

end

else

begin

Delete(RecivedStr,1,2);

if length(RecivedStr)>1 then

if RecivedStr[2]='0' then delete(RecivedStr,1,1);

if length(RecivedStr)>4 then

RecivedStr:=Copy(RecivedStr,1,5)

else

Delete(RecivedStr,Length(RecivedStr),1);

for i:=1 to Length(RecivedStr) do

begin

if RecivedStr[i]='.'

then RecivedStr[i]:=',';

end;

if length(RecivedStr)>0 then

case Numedit of

0: begin

A.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[1,i]<>' ' do

begin

mi:=mi+Diapp[1,i];

inc(i);

end;

while i<=Length(Diapp[1]) do

begin

ma:=ma+Diapp[1,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec>0.8) then

Form1.S1.Brush.Color:=clLime

else

if (Rec<0.8)and(Rec>0.5) then

Form1.S1.Brush.Color:=clYellow

else

Form1.S1.Brush.Color:=clRed;

Form1.A1.Text:=FloatToStr(Rec);

end;

1: begin

B.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[2,i]<>' ' do

begin

mi:=mi+Diapp[2,i];

inc(i);

end;

while i<=Length(Diapp[2]) do

begin

ma:=ma+Diapp[2,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec<62) then

Form1.S2.Brush.Color:=clLime

else

if (Rec>62)and(Rec<64) then

Form1.S2.Brush.Color:=clYellow

else

Form1.S2.Brush.Color:=clRed;

Form1.B1.Text:=FloatToStr(Rec);

end;

2: begin

C.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[3,i]<>' ' do

begin

mi:=mi+Diapp[3,i];

inc(i);

end;

while i<=Length(Diapp[3]) do

begin

ma:=ma+Diapp[3,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec>0.3) then

Form1.S3.Brush.Color:=clLime

else

if (Rec<0.3)and(Rec>0.25) then

Form1.S3.Brush.Color:=clYellow

else

Form1.S3.Brush.Color:=clRed;

Form1.C1.Text:=FloatToStr(Rec);

end;

3: begin

D.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[4,i]<>' ' do

begin

mi:=mi+Diapp[4,i];

inc(i);

end;

while i<=Length(Diapp[4]) do

begin

ma:=ma+Diapp[4,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec<40) then

Form1.S4.Brush.Color:=clLime

else

if (Rec>40)and(Rec<45) then

Form1.S4.Brush.Color:=clYellow

else

Form1.S4.Brush.Color:=clRed;

Form1.D1.Text:=FloatToStr(Rec);

end;

4: begin

E.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[5,i]<>' ' do

begin

mi:=mi+Diapp[5,i];

inc(i);

end;

while i<=Length(Diapp[5]) do

begin

ma:=ma+Diapp[5,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec>10)and(Rec<60) then

Form1.S5.Brush.Color:=clLime

else

if (Rec>5)and(Rec<70) then

Form1.S5.Brush.Color:=clYellow

else

Form1.S5.Brush.Color:=clRed;

Form1.E1.Text:=FloatToStr(Rec);

end;

5: begin

F.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[6,i]<>' ' do

begin

mi:=mi+Diapp[6,i];

inc(i);

end;

while i<=Length(Diapp[6]) do

begin

ma:=ma+Diapp[6,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec<20) then

Form1.S6.Brush.Color:=clLime

else

if (Rec>20)and(Rec<30) then

Form1.S6.Brush.Color:=clYellow

else

Form1.S6.Brush.Color:=clRed;

Form1.F1.Text:=FloatToStr(Rec);

end;

6: begin

G.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[7,i]<>' ' do

begin

mi:=mi+Diapp[7,i];

inc(i);

end;

while i<=Length(Diapp[7]) do

begin

ma:=ma+Diapp[7,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec<60) then

Form1.S7.Brush.Color:=clLime

else

if (Rec>60)and(Rec<70) then

Form1.S7.Brush.Color:=clYellow

else

Form1.S7.Brush.Color:=clRed;

Form1.G1.Text:=FloatToStr(Rec);

end;

7: begin

H.Text:=RecivedStr;

i:=3;

ma:='';

mi:='';

while Diapp[8,i]<>' ' do

begin

mi:=mi+Diapp[8,i];

inc(i);

end;

while i<=Length(Diapp[8]) do

begin

ma:=ma+Diapp[8,i];

inc(i);

end;

Rec:=(StrToCurr(RecivedStr)/10)*(StrToFloat(ma)-StrToFloat(mi))+StrToFloat(mi);

if (Rec<6.5) then

Form1.S8.Brush.Color:=clLime

else

if (Rec>6.5)and(Rec<7.1) then

Form1.S8.Brush.Color:=clYellow

else

Form1.S8.Brush.Color:=clRed;

Form1.H1.Text:=FloatToStr(Rec);

end;

end;

if length(NumTr)>0 then

repeat

if Numedit=7

then begin

Numedit:=0;

if lab=true then

begin

Label2.Visible:=True;

Label1.Visible:=False;

lab:=false;

end

else

begin

Label1.Visible:=True;

Label2.Visible:=False;

lab:=True;

end

end

else Numedit:=Numedit+1;

index:=IntToStr(Numedit);

Tr:=false;

for i:=1 to length(NumTr) do

if (NumTr[i]=index)

then begin

Tr:=true;

break;

end;

until Tr;

end;

2: Form3.ComportReceiveData;

end;

end;

procedure TForm2.ExitClick(Sender: TObject);

begin

Form2.Close;

end;

procedure TForm2.StopClick(Sender: TObject);

begin

Timer1.Enabled:=False;

Run.Enabled:=True;

Stop.Enabled:=False;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

var index: string;

kol : 0..9;

begin

cod:='';

kol:=0;

if Check0.Checked=true then

begin

cod:=cod+'0';

inc(kol);

A.Visible:=true;

Form1.A1.Font.Color:=clBlack;

end

else

begin

A.Visible:=false;

Form1.A1.Font.Style:=[fsBold];

Form1.A1.Font.Color:=clRed;

Form1.A1.Text:='ERROR!!!';

end;

if Check1.Checked=true then

begin

cod:=cod+'1';

inc(kol);

B.Visible:=true;

Form1.B1.Font.Color:=clBlack;

end

else

begin

B.Visible:=false;

Form1.B1.Font.Style:=[fsBold];

Form1.B1.Font.Color:=clRed;

Form1.B1.Text:='ERROR!!!';

end;

if Check2.Checked=true then

begin

cod:=cod+'2';

inc(kol);

C.Visible:=true;

Form1.C1.Font.Color:=clBlack;

end

else

begin

C.Visible:=false;

Form1.C1.Font.Style:=[fsBold];

Form1.C1.Font.Color:=clRed;

Form1.C1.Text:='ERROR!!!';

end;

if Check3.Checked=true then

begin

cod:=cod+'3';

inc(kol);

D.Visible:=true;

Form1.D1.Font.Color:=clBlack;

end

else

begin

D.Visible:=false;

Form1.D1.Font.Style:=[fsBold];

Form1.D1.Font.Color:=clRed;

Form1.D1.Text:='ERROR!!!';

end;

if Check4.Checked=true then

begin

cod:=cod+'4';

inc(kol);

E.Visible:=true;

Form1.E1.Font.Color:=clBlack;

end

else

begin

E.Visible:=false;

Form1.E1.Font.Style:=[fsBold];

Form1.E1.Font.Color:=clRed;

Form1.E1.Text:='ERROR!!!';

end;

if Check5.Checked=true then

begin

cod:=cod+'5';

inc(kol);

F.Visible:=true;

Form1.F1.Font.Color:=clBlack;

end

else

begin

F.Visible:=false;

Form1.F1.Font.Style:=[fsBold];

Form1.F1.Font.Color:=clRed;

Form1.F1.Text:='ERROR!!!';

end;

if Check6.Checked=true then

begin

cod:=cod+'6';

inc(kol);

G.Visible:=true;

Form1.G1.Font.Color:=clBlack;

end

else

begin

G.Visible:=false;

Form1.G1.Font.Style:=[fsBold];

Form1.G1.Font.Color:=clRed;

Form1.G1.Text:='ERROR!!!';

end;

if Check7.Checked=true then

begin

cod:=cod+'7';

inc(kol);

H.Visible:=true;

Form1.H1.Font.Color:=clBlack;

end

else

begin

H.Visible:=false;

Form1.H1.Font.Style:=[fsBold];

Form1.H1.Font.Color:=clRed;

Form1.H1.Text:='ERROR!!!';

end;

if kol=0 then

begin

Label2.Visible:=True;

Label1.Visible:=False;

lab:=false;

end;

NumTr:=cod;

cod:=cod+'-';

inc(kol);

AssignFile(Fcode,'cod.ini');

Reset(Fcode);

for i:=1 to 256 do

begin

index:='';

Readln(Fcode,index);

if cod=copy(index,1,kol) then

begin

cod:=copy(index,kol+1,2);

break;

end;

end;

CloseFile(Fcode);

if iRun then

Run3

else

if (cod1<>cod) then

begin

cod1:=cod;

run1;

end

else run2;

end;

procedure TForm2.SelAllClick(Sender: TObject);

begin

Check0.Checked:=True;

Check1.Checked:=True;

Check2.Checked:=True;

Check3.Checked:=True;

Check4.Checked:=True;

Check5.Checked:=True;

Check6.Checked:=True;

Check7.Checked:=True;

end;

procedure TForm2.ClrAllClick(Sender: TObject);

begin

Label2.Visible:=True;

Label1.Visible:=False;

lab:=false;

Check0.Checked:=False;

Check1.Checked:=False;

Check2.Checked:=False;

Check3.Checked:=False;

Check4.Checked:=False;

Check5.Checked:=False;

Check6.Checked:=False;

Check7.Checked:=False;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.Enabled:=True;

end;

procedure TForm2.FormShow(Sender: TObject);

begin

A.Text:='';

B.Text:='';

C.Text:='';

D.Text:='';

E.Text:='';

F.Text:='';

G.Text:='';

H.Text:='';

Form_:=1;

iRun:=True;

Numedit:=0;

Run.Enabled:=False;

Stop.Enabled:=True;

timer1.Enabled:=True;

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

SelAllClick(Sender);

if (Form5.Co2.Items[Form5.Co2.ItemIndex]<>'') and (Form5.Co1.Items[Form5.Co1.ItemIndex]<>'')

then begin

Comport.BaudRate:=StrtoInt(Form5.Co2.Items[Form5.Co2.ItemIndex]);

Comport.CommPort:=Form5.Co1.Items[Form5.Co1.ItemIndex];

end;

Comport.StartComm;

AssignFile(HFile,'Diap.ini');

Reset(HFile);

for i:=1 to 8 do

if not eof(Hfile)

then Readln(HFile,Diapp[i]);

CloseFile(HFile);

Form_:=1;

iRun:=True;

Numedit:=0;

Run.Enabled:=False;

Stop.Enabled:=True;

timer1.Enabled:=True;

end; 

end.


unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,unit2, Buttons;

type

TForm3 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Go: TButton;

Exit: TButton;

memo1: TMemo;

procedure GoClick(Sender: TObject);

procedure ComportReceiveData;

procedure ExitClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

TexttoWrite: string;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.GoClick(Sender: TObject);

begin

Go.Enabled:=False;

Edit2.Text:='';

TexttoWrite:=Edit1.Text;

Form2.Comport.WriteCommData(PChar(TexttoWrite+#13#10),length(TexttoWrite)+2);

if Edit2.Text='' then

begin

Edit2.Text:='No Response';

Memo1.Lines.Add('No Response');

Memo1.Lines.Add('');

end;

end;

procedure TForm3.ComportReceiveData;

begin

delete(RecivedStr,length(RecivedStr),1);

if (Copy(RecivedStr,1,1)='?') then

begin

Edit2.Text:='No Response';

Memo1.Lines.Add('No Response');

Memo1.Lines.Add('');

end

else

begin

Edit2.Text:=RecivedStr;

Memo1.Lines.Delete(Memo1.Lines.Count-2);

Memo1.Lines.Delete(Memo1.Lines.Count-1);

Memo1.Lines.Add(RecivedStr);

Memo1.Lines.Add('');

end;

Go.Enabled:=True;

end;

procedure TForm3.ExitClick(Sender: TObject);

begin

Form3.Close;

end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.Enabled:=True;

Form2.Timer1.Enabled:=True;

end;

procedure TForm3.FormShow(Sender: TObject);

var i : integer;

begin

Edit1.SetFocus;

Go.Enabled:=False;

Edit1.Text:='';

Edit2.Text:='';

memo1.Lines.Clear;

Form_:=2;

end;

procedure TForm3.Edit1Change(Sender: TObject);

begin

if Length(Edit1.Text)=0 then

Go.Enabled:=False

else

Go.Enabled:=True;

end;

end.


unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm4 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label5: TLabel;

Label4: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

var i:byte;

begin

Edit1.Text:='';

Edit2.Text:='';

AssignFile(HFile,'Diap.ini');

Append(HFile);

for i:=1 to 8 do

Writeln(HFile,s[i]);

CloseFile(HFile);

Diapp:=s;

Form2.Timer1.Enabled:=True;

Form1.Enabled:=True;

end;

procedure TForm4.Button1Click(Sender: TObject);

var min,max: Currency;

begin

if  ((Length(Edit1.Text)>0)and(Length(Edit2.Text)>0)and(StrtoCurr(Edit1.Text)<StrtoCurr(Edit2.Text)))then

begin

s[Menu_]:=InttoStr(Menu_)+' '+Edit1.Text+' '+Edit2.Text;

Form4.Close;

end

else

begin

Application.MessageBox('Введены неправильные значения','Ошибка!!!',0);

Form4.Edit1.SetFocus;

end;

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

if s[Menu_]='' then

begin

Application.MessageBox('Сведения отсутствуют!!! Введите значения','Ошибка!!!',0);

Form4.Edit1.SetFocus;

exit;

end;

Form4.Close;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

if s[Menu_]='' then

begin

Application.MessageBox('Сведения отсутствуют!!! Введите значения','Ошибка!!!',0);

Form4.Edit1.SetFocus;

exit;

end;

Form4.Close;

end;

procedure TForm4.FormShow(Sender: TObject);

var i:byte;

begin

Form4.Edit1.SetFocus;

s:=Diapp;

if length(Diapp[Menu_])=0 then

begin

case Menu_ of

1: Application.MessageBox('Диапазон давления на входе отсутствует',

'Отсутствие данных',0);

2: Application.MessageBox('Диапазон давления на выходе отсутствует',

'Отсутствие данных',0);

3: Application.MessageBox('Диапазон давления масла в маслосистеме отсутствует',

'Отсутствие данных',0);

4: Application.MessageBox('Диапазон температур масла в маслосистеме отсутствует',

'Отсутствие данных',0);

5: Application.MessageBox('Диапазон температур в насосной отсутствует',

'Отсутствие данных',0);

6: Application.MessageBox('Диапазон загазованности в насосной отсутствует',

'Отсутствие данных',0);

7: Application.MessageBox('Диапазон температур корпуса агрегата отсутствует',

'Отсутствие данных',0);

8: Application.MessageBox('Диапазон вибрации на подшипниках отсутствует',

'Отсутствие данных',0);

end;

exit;

end;

i:=3;

while Diapp[Menu_,i]<>' ' do

begin

Edit1.Text:=Edit1.Text+Diapp[Menu_,i];

inc(i);

end;

inc(i);

while i<=Length(Diapp[Menu_]) do

begin

Edit2.Text:=edit2.Text+Diapp[Menu_,i];

inc(i);

end;

end;

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm5 = class(TForm)

Co1: TComboBox;

Label1: TLabel;

Co2: TComboBox;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

Portt: Text;

comb:string;

Baudrr,Commp :integer;

Exitt : boolean;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Co1.SetFocus;

if Exitt=False then

begin

Co1.ItemIndex:=Baudrr;

Co2.ItemIndex:=Commp;

end;

Form2.Timer1.Enabled:=True; 

Form1.Enabled:=True;

end;

procedure TForm5.FormCreate(Sender: TObject);

var i: integer;

begin

for i:=1 to 255 do

Co1.AddItem('COM'+InttoStr(i),Sender);

i:=1200;

while i<=38400 do

begin

Co2.AddItem(InttoStr(i),Sender);

i:=i*2;

end;

i:=57600;

while i<=921600 do

begin

Co2.AddItem(InttoStr(i),Sender);

i:=i*2;

end;

AssignFile(Portt,'Port.ini');

Reset(Portt);

Readln(Portt,Ports);

Readln(Portt,Adres);

CloseFile(Portt);

if Adres=#$1A then

Adres:='1';

i:=1;

if Ports='' then exit;

Comb:='';

while Ports[i]<>',' do

begin

Comb:=Comb+Ports[i];

inc(i);

end;

inc(i);

Co1.ItemIndex:=StrtoInt(Comb);

Comb:='';

while Length(Ports)>=i do

begin

Comb:=Comb+Ports[i];

inc(i);

end;

Co2.ItemIndex:=StrToInt(Comb);

end;

procedure TForm5.Button1Click(Sender: TObject);

var i   : integer;

qtr : boolean;

begin

if ((Length(Co1.Text)=0) or (Length(Co2.Text)=0)) then

begin

Application.MessageBox('Отсутствует одно из значений!','Ошибка!!!',0);

exit;

end;

AssignFile(Portt,'Port.ini');

Append(Portt);

Rewrite(Portt);

Comb:=IntToStr(Co1.ItemIndex)+','+IntToStr(Co2.ItemIndex);

Writeln(Portt,Comb);

Writeln(Portt,Adres);

CloseFile(Portt);

Exitt:=True;

Form2.Comport.BaudRate:=StrToInt(Co2.Items[Co2.ItemIndex]);

Form2.Comport.CommPort:=Co1.Items[Co1.ItemIndex];

Form2.Comport.StartComm;

Form5.Close;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

if (Baudrr<>-1) and (Commp<>-1)

then begin

Co1.ItemIndex:=Baudrr;

Co2.ItemIndex:=Commp;

end

else

begin

Application.MessageBox('Отсутствуют значения порта

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.