NL580 2017-08-07 06:46 采纳率: 0%
浏览 1321

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

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条回答 默认 最新

  • NL580 2017-08-07 07:39
    关注

    怎么没人呢,自己先顶一下!

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大