⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit5.pas

📁 西门子与计算机通讯程序包括源代码 程序说明 可以进行时时数据采集记录
💻 PAS
字号:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus,Prodave, DB, Grids, DBGrids, ADODB;

type
  TForm5 = class(TForm)
    Panel1: TPanel;
    Button3: TButton;
    Button4: TButton;
    Panel2: TPanel;
    Button2: TButton;
    Button1: TButton;
    Panel3: TPanel;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    OpenDialog1: TOpenDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N300ms1: TMenuItem;
    N500ms1: TMenuItem;
    N1000ms1: TMenuItem;
    N2000ms1: TMenuItem;
    N5000ms1: TMenuItem;
    Timer1: TTimer;
    Timer2: TTimer;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ADOTable1: TADOTable;
    Button9: TButton;
    Button10: TButton;
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N500ms1Click(Sender: TObject);
    procedure N2000ms1Click(Sender: TObject);
    procedure N300ms1Click(Sender: TObject);
    procedure N5000ms1Click(Sender: TObject);
    procedure N1000ms1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

uses strct, adodata, main, Unit10, Unit11, Unit12, drawdisp_time;

{$R *.dfm}

procedure TForm5.Button5Click(Sender: TObject);
begin
form9:=tform9.Create(self);
form9.ShowModal();
form9.Free;
if databaselogok then
   begin
    Button8.Enabled:=true;
    button7.Enabled:=false;
   
   end;
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
 Button7.Enabled:=false;
 Button8.Enabled:=false;
 Button1.Enabled:=false;
 Button2.Enabled:=false;
 button3.Enabled:=false;
 button9.Enabled:=false;
 Button4.Enabled:=false;
 
OpenDialog1.InitialDir :=application.GetNamePath+'data';
end;

procedure TForm5.Button8Click(Sender: TObject);

begin
     DataModule1.ADOConnection1.LoginPrompt:=false;
     DataModule1.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+databasenamelog+';Persist Security Info=False '  ;
     DataModule1.ADOConnection1.Open;
       DataModule1.ADOQuery1.Active:=true;
     if not DataModule1.ADOConnection1.Connected then
            showmessage('数据库连接不成功,请重新启动程序新建一数据库');     { connection unsuccessful };
     if DataModule1.ADOConnection1.Connected then
        begin
         databaselogconnectok:=true;
         Button7.Enabled:=true;
         Button8.Enabled:=false;
         Button5.Enabled:=false;
         Button6.Enabled:=false;
         Button1.Enabled:=true;
          Button3.Enabled:=true;
          Button4.Enabled:=true;
        end;
        Sleep(1000);
        adotable1.Active:=true;
        adotable1.TableName:='type1'; 
end;

procedure TForm5.Timer1Timer(Sender: TObject);
begin
 form5.Caption:='请创建数据库并连接';
if databaselogok then
  begin
   form5.Caption:= databasenamelog  +'创建成功' ;
  end;
 if databaselogconnectok and  databaselogok then
  begin
   form5.Caption:= databasenamelog  +'创建并连接成功';
  end ;
end;

procedure TForm5.Button7Click(Sender: TObject);
begin
if  DataModule1.ADOConnection1.Connected then
begin
    adotable1.Active:=false;
    dataModule1.ADOConnection1.Close;
       DataModule1.ADOQuery1.Active:=false;
    databaselogconnectok:=false;
    Button8.Enabled:=true;
    Button7.Enabled:=false;
    Button5.Enabled:=true;
    Button6.Enabled:=true;
    Button1.Enabled:=false;
     Button3.Enabled:=false;
end;
   

end;

procedure TForm5.Timer2Timer(Sender: TObject);
var
   J, I: Integer;
temp1,temp2:Integer;

begin
if (not databaselogconnectok) and  (not databaselogok)  then exit;
 //读取数据
datalogstatus:=Mix_Read(pansichar (@mixdata[0]),mixreturndata);
  Prodave.Error_Message(datalogstatus, ErrMess);
    // if datalogstatus then  exit;
 for I := 0 to 24 do    // Iterate
 begin
   mixdatasave[i]:=0;
 end;    // for

    j:=0;
 for I := 0 to mixdatacount - 1 do    // Iterate
 begin         

   if mixdatatype[j]='b' then
   begin
    mixdatasave[i]:=mixreturndata[j];
    j:=j+1;
    end else
 if mixdatatype[j]='w' then
   begin
   temp1:= mixreturndata[j] ;
   temp2:= mixreturndata[j+1];
 if not pareswap   then   mixdatasave[i]:=(temp1 shl 8) +temp2 else  mixdatasave[i]:=(temp2 shl 8) +temp1  ;
   j:=j+2;
   end;
 end;    // for


 //模拟数据
 //Randomize;
//   for I := 0 to mixdatacount-1 do
//   begin
//     mixdatasave[i]:=1000+Random(100);
//   end;

 //存储数据
  datalogdata:='('+''''+inttostr(datalogstatus)+''''+','+''''+datetimetostr(now)+'''';
 for I := 0 to mixdatacount - 1 do    // Iterate
 begin
   datalogdata:= datalogdata +','+inttostr(mixdatasave[i]);
 end;    // for
   datalogdata:= datalogdata +')';
   datalogcommand:='INSERT INTO db ' + datalogname+ ' values '+datalogdata;

  DataModule1.ADOConnection1.Execute(datalogcommand);


  //保存显示数据  

    if ((sercount< 1020) and (sercount>=0)) then
    begin
      sercount:=sercount+1;
    end else
    sercount:=1020;
  if sercount=1020 then
 begin   

         for I := 0 to mixdatacount do    // Iterate
         begin

         for j := 0 to  1020 do    // Iterate
         begin
          drawdatatime[i][j]:=drawdatatime[i][j+1];
         end;    // for
         drawdatatime[i][sercount]:=mixdatasave[i]; 
         end;    // for
 end else
 begin
     for I := 0 to mixdatacount do    // Iterate
     begin
     drawdatatime[i][sercount]:=mixdatasave[i];
     end;
 end;

end;

procedure TForm5.Button1Click(Sender: TObject);
begin
if commustatus<>1 then
begin
  showmessage('请先连接并通讯正常');
  //exit;
end;
  
Timer2.Enabled:=true;
Button1.Enabled:=false;
Button2.Enabled:=true;
Button4.Enabled:=false;
Button7.Enabled:=false;
button9.Enabled:=true;
end;

procedure TForm5.Button2Click(Sender: TObject);
begin
Timer2.Enabled:=false;
Button1.Enabled:=true;
Button2.Enabled:=false;
button4.Enabled:=true;
Button7.Enabled:=true;
button9.Enabled:=false;
end;

procedure TForm5.N500ms1Click(Sender: TObject);
begin
 timer2.Interval:=500;
 form13.Timer1.Interval:=timer2.Interval;
end;

procedure TForm5.N2000ms1Click(Sender: TObject);
begin
timer2.Interval:=2000;
form13.Timer1.Interval:=timer2.Interval;
end;

procedure TForm5.N300ms1Click(Sender: TObject);
begin
timer2.Interval:=300;
form13.Timer1.Interval:=timer2.Interval;
end;

procedure TForm5.N5000ms1Click(Sender: TObject);
begin
timer2.Interval:=5000;
form13.Timer1.Interval:=timer2.Interval;
end;

procedure TForm5.N1000ms1Click(Sender: TObject);
begin
timer2.Interval:=1000;
form13.Timer1.Interval:=timer2.Interval;
end;

procedure TForm5.Button6Click(Sender: TObject);
begin
   form10:=tform10.Create(nil);
  try form10.ShowModal();
  finally form10.free ;
  end;
   if databaselogok then
   begin
    Button8.Enabled:=true;
    button7.Enabled:=false;
   
   end;
end;

procedure TForm5.Button3Click(Sender: TObject);
begin
if databaselogok then
begin
  
      form11.ADOConnection1.LoginPrompt:=false;
      form11.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+databasenamelog+';Persist Security Info=False '  ;
      form11.ADOConnection1.Open;

    if not   form11.ADOConnection1.Connected then
         showmessage('数据库连接不成功,请重新启动程序新建一数据库');     { connection unsuccessful };
       if form11.ADOConnection1.Connected then        databaselogconnectok:=true;
        Sleep(1000);
   form11.adotable1.Active:=true;
   form11.adotable1.TableName:='db';
end;


//form11:=tform11.Create(self);
form11.Show;
 //form11.free;

end;

procedure TForm5.Button4Click(Sender: TObject);
begin
form12:=tform12.Create(self);
form12.ShowModal;
form12.free ;
end;

procedure TForm5.Button9Click(Sender: TObject);
begin
form13.Timer1.Enabled:=true; 
form13.show;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -