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

📄 unit1.~pas

📁 200PLC vb,delphi driver,programmed by others
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    GroupBox1: TGroupBox;
    Button6: TButton;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    GroupBox2: TGroupBox;
    Button7: TButton;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Edit6: TEdit;
    GroupBox3: TGroupBox;
    Button8: TButton;
    Button9: TButton;
    Label7: TLabel;
    Edit7: TEdit;
    Label8: TLabel;
    Edit8: TEdit;
    GroupBox4: TGroupBox;
    Button10: TButton;
    Label9: TLabel;
    Edit9: TEdit;
    Label10: TLabel;
    Edit10: TEdit;
    GroupBox5: TGroupBox;
    Label11: TLabel;
    Label12: TLabel;
    Button11: TButton;
    Edit11: TEdit;
    Edit12: TEdit;
    Label13: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Edit11Change(Sender: TObject);
    procedure Edit12Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  DLL_API='S7_200_PPI.dll';
var
  Form1: TForm1;
  rxdataBytes: array[0..1024] of byte;
  rxdataWords: array[0..1024] of word;
  Function OpenCom(ComNo: integer): integer;stdcall;external DLL_API;
  Function CloseCom(): bool;stdcall;external DLL_API;
  Function SetBaudRate(BaudRate: integer): integer;stdcall;external DLL_API;
  Function bitsetV(PLCaddr: integer; Vaddr: integer; bitNo: integer): integer;stdcall;external DLL_API;
  Function bitResetV(PLCaddr: integer; Vaddr: integer; bitNo: integer): integer;stdcall;external DLL_API;
  Function bit(AByte: byte; bitNo: integer):bool;stdcall;external DLL_API;
  Function readVB(PLCaddr: integer; Vaddr: integer; length: integer; var buff): integer;stdcall;external DLL_API;
  Function readVW(PLCaddr: integer; Vaddr: integer; length: integer; var buff): integer;stdcall;external DLL_API;
  Function writeVB(PLCaddr: integer; Vaddr: integer; value: integer): integer;stdcall;external DLL_API;
  Function writeVW(PLCaddr: integer; Vaddr: integer; value: integer): integer;stdcall;external DLL_API;
  Function PLCRUN(PLCaddr: integer): integer;stdcall;external DLL_API;
  Function PLCSTOP(PLCaddr: integer): integer;stdcall;external DLL_API;
  procedure setReadDelay(ADelayTime: integer);stdcall;external DLL_API;
  procedure setOKDelay(ADelayTime: integer);stdcall;external DLL_API;
  
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if(OpenCom(1) > 0) then Memo1.Text := '打开串口'
  else memo1.Text := 'error';
  
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if(CloseCom()) then Memo1.Text := '关闭'
  else memo1.Text := 'error';

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1Click(self);

end;

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

end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if(bitsetV(2,strtoint(edit5.Text),strtoint(edit6.Text)) > 0) then memo1.Text := 'ok'
  else memo1.Text := 'error';

end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if(bitResetV(2,strtoint(edit5.Text),strtoint(edit6.Text)) > 0) then memo1.Text := 'ok'
  else memo1.Text := 'error';

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if(PLCRUN(2) > 0) then memo1.Text := 'RUN'
  else memo1.Text := 'error';

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if(PLCSTOP(2) > 0) then memo1.Text := 'STOP'
  else memo1.Text := 'error';

end;

procedure TForm1.Button5Click(Sender: TObject);
var
  i: integer;
  tmp: string;
begin
  if(readVB(2,strtoint(edit1.Text),strtoint(edit2.Text),rxdataBytes) > 0) then
  begin
    for i:=0 to strtoint(edit2.Text) -1 do
      tmp := tmp + inttostr(rxdataBytes[i]) + ',';
    memo1.Text := tmp;
  end
  else memo1.Text := 'error';

end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if(writeVB(2,strtoint(edit3.Text),strtoint(edit4.Text)) > 0) then memo1.text := 'ok'
  else memo1.text := 'error';

end;

procedure TForm1.Button9Click(Sender: TObject);
var
  i: integer;
  tmp: string;
begin
  //for i := 0 to 1000 do rxdataWord[i] := 0;
  if(readVW(2,strtoint(edit7.Text),strtoint(edit8.Text),rxdataWords) > 0) then
  begin
    for i := 0 to strtoint(edit8.Text) - 1 do
      tmp := tmp + inttostr(rxdataWords[i]) + ',';
    memo1.Text := tmp;
  end
  else memo1.Text := 'error';

end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  if(writeVW(2,strtoint(edit9.Text),strtoint(edit10.Text)) > 0) then memo1.Text := 'ok'
  else memo1.Text := 'error';
  
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  if(bit(strtoint(edit11.Text),strtoint(edit12.Text))) then application.MessageBox('1','')
  else application.MessageBox('0','');
end;

procedure TForm1.Edit11Change(Sender: TObject);
begin
  if(strtoint(edit11.Text)>255) then edit11.Text := '0';
end;

procedure TForm1.Edit12Change(Sender: TObject);
begin
  if(strtoint(edit12.Text)>7) then edit12.Text := '0';
end;

end.

⌨️ 快捷键说明

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