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

📄 unit1.pas

📁 PCI8408的驱动接口源文件(带示例)
💻 PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  m_cardNO: Longint;
  m_saveData: array[0..31] of SmallInt;
  m_timer1Finish: Boolean;
  STxt_AD:array[0..31] of TStaticText;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
    //生成控件数组
    for i:=0 to 16-1 do
    begin
        STxt_AD[i] := TStaticText.create(self);
        STxt_AD[i].Parent := form1;
        STxt_AD[i].BorderStyle := sbsSunken;
        STxt_AD[i].Visible := true;
        STxt_AD[i].Width := 70;
        STxt_AD[i].Height := 17;
        STxt_AD[i].Left := 30 + (STxt_AD[i].Width+3)*((i) mod 8 );
        STxt_AD[i].Top := 50 + (STxt_AD[i].Height+3)*((i) div 8 );
        STxt_AD[i].AutoSize := false;
        STxt_AD[i].Caption := 'DI' + inttostr(i+1);
    end;

    //打开设备
    m_cardNO := 1;
    if (ZT8408_OpenDevice(m_cardNO) <> 0) then
        MessageBox(form1.Handle,'打开失败','',MB_OK)
    else
        //MessageBox(form1.Handle,'打开成功','',MB_OK);
        begin
        form1.Caption := '打开成功';
        m_timer1Finish := True;
        Timer1.Interval := 100;
        Timer1.Enabled := True;
        end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    //关闭设备
    m_cardNO := 1;
    if (ZT8408_CloseDevice(m_cardNO) <> 0) then
        MessageBox(form1.Handle,'关闭失败','',MB_OK);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var chCount:Longint;
    i:Longint;
begin
    if m_timer1Finish = False then exit;
    m_timer1Finish := False;

    chCount := 16;

    for i:=0 to chCount-1 do
    begin
        STxt_AD[i].Caption := inttostr(ZT8408_DIBit(m_cardNO, i+1));
    end;
    label1.Caption := '错误号: ' + inttostr(ZT8408_GetLastErr); //返回函数执行的状态
    m_timer1Finish := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//所有开关量输出高
    ZT8408_DOAll(m_cardNO, $FFFF);
    label1.Caption := '错误号: ' + inttostr(ZT8408_GetLastErr); //返回函数执行的状态
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//所有开关量输出低
    ZT8408_DOAll(m_cardNO, $0);
    label1.Caption := '错误号: ' + inttostr(ZT8408_GetLastErr); //返回函数执行的状态
end;

end.

⌨️ 快捷键说明

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