?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Btn_Read: TButton;
Btn_Write: TButton;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Btn_WriteClick(Sender: TObject);
procedure Btn_ReadClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Function DTL_INIT(id:LongInt):SmallInt;
stdcall;external'dtl32.dll';
Function DTL_C_CONNECT(Id:LongInt;Name:PChar;NullP:
Pointer):SmallInt;stdcall;external'dtl32.dll';
Function DTL_DISCONNECT(id:LongInt):SmallInt;
stdcall;external'dtl32.dll';
Function DTL_C_DEFINE(var id:LongInt; DefStr:PChar):
SmallInt;stdcall;external'dtl32.dll';
Function DTL_UNDEF(id:LongInt):SmallInt;
stdcall;external'dtl32.dll';
Function DTL_READ_W(id:LongInt;Buf:Pointer;
var stat:LongInt; DelayTime:LongInt):SmallInt;
stdcall;external'dtl32.dll';
Function DTL_WRITE_W(id:LongInt; Buf:Pointer;
var stat:LongInt; DelayTime:LongInt):SmallInt;
stdcall;external'dtl32.dll';
{$R *.dfm}
var
Rst,i: Integer;
Data:array [0..20] of SmallInt;
Str:string;
DefStr :PChar
Handle,IOStat:LongInt;
procedure TForm1.FormCreate(Sender: TObject);
begin
Str:=''; rst:=1; rst:=DTL_INIT(1);
if rst=0 then
rst := DTL_C_CONNECT(0,PChar(Str),nil);
if rst=0 then Label1.Caption:='RSLinx連接成功'
else Label1.Caption:='RSLinx連接失敗';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DTL_DISCONNECT(0);
end;
procedure TForm1.Btn_ReadClick(Sender: TObject);
begin
DefStr:='$N7:0,20,WORD,READ,1KT:0,001,PLC5,0';
if DTL_C_DEFINE(Handle, PChar(DefStr))=0 then
begin
rst:=DTL_READ_W(handle, @Data, IOStat, 1000 );
DTL_UNDEF(Handle);
end;
ListBox1.Clear;
if rst=0 then for I:=0 to 19 do
begin
FmtStr(Str,'N7:%d=%d', [I,Data[I]]);
ListBox1.Items.Add(Str);
end;
end;
procedure TForm1.Btn_WriteClick(Sender: TObject);
begin
DefStr:='$N7:0,20,WORD,MODIFY,1KT:0,001,PLC5,0';
if DTL_C_DEFINE(Handle, PChar(DefStr))=0 then
begin
rst:=DTL_WRITE_W(handle, @Data, IOStat, 1000 );
DTL_UNDEF(Handle);
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -