u013544070
NL580
2017-08-07 06:46

DELPHI如何通过VISA与USB设备通信

  • delphi

Private Sub Command1_Click()
Dim defrm As Long
Dim vi As Long

' 获得visa的usb资源
Call viOpenDefaultRM(defrm)

' 打开设备
Call viOpen(defrm, "USB0::0x1AB1::0x0E11::DP8F192200227::INSTR", 0, 0, vi)

'发送设置命令
Call viVPrintf(vi, ":OUTP CH1,ON" + Chr$(10), 0)

' 关闭资源
Call viClose(vi)
Call viClose(defrm)
End Sub
以上是VB编写的通过USB控制DP831直流电源的程序,测试没问题。但我将该段代码转换成Delphi后,运行报错,请高手指点下迷津!以下是我的Delphi代码

function viOpenDefaultRM(sesn1:PLongint):Longint;stdcall external 'visa32.dll';
function viOpen(sesn1:PLongint;rsrcName:PChar;acessMode:Longint;timeout:Longint;sesn2:PLongint):Longint;stdcall external 'visa32.dll';
function viPrintf( vi:PLongint; writeFmt:pchar;ss:Longint): integer; Cdecl; external 'VISA32.DLL' ;
function viClose(sesn:PLongint):Longint;stdcall external 'visa32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
defrm,vi:PLongint;
begin
// 获得visa的usb资源
viOpenDefaultRM(defrm);
//打开设备
viOpen(defrm,'USB0::0x1AB1::0x0E11::DP8F192200227::INSTR', 0, 0, vi);
//发送设置命令
viPrintf(vi,':OUTP CH1,ON'+#10, 0);
viClose(vi);
viClose(defrm);
end;
不知是哪里出了问题?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换