NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

excel中使用GPIB ibrd函数, excel报错,提示microsoftware excel运行有问题

  在excel中使用GPIB,  使用ibrd  函数时, excel自身报错, 提示microsoftware excel运行有问题。   请教高手 这个怎么解决啊

   

    Dim reply As String
    Dim voltval As String
    Dim tek370aid As Integer
   
    tek370aid = Init370

    Call ibwrt((tek370aid, "id?")
    reply = Space(200)
    reply = Readdev(tek370aid, 200) 

'//// 运行到这句excel自身报错, 出现如上所说的错误提示。

    

'//  init370和Readdev 函数定义如下 ///

Function Readdev(udDev As Integer, length As Integer)
    Dim reply As String
    reply = Space(length)
    Call ibrd(udDev, reply)
    poserr = ErrorCheck("ibrd(" & udDev & ", " & reply & ")")
    While poserr = 4
       Call ibrd(udDev, reply)
       poserr = ErrorCheck("ibrd(" & udDev & ", " & reply & ")")
    Wend
    Readdev = reply
End Function

 

 

Function Init370()
    Dim iDeviceNumber As Integer
    iDeviceNumber = Worksheets("Sheet1").Range("device_address").value
    Call ibfind("GPIB0", udGPIB0)
    Call ibsic(udGPIB0)
    Call ibdev(0, iDeviceNumber, 0, 11, 1, 0, udDevice)
    Call ibask(udGPIB0, IbaPAD, 0)
    Call ibask(udDevice, IbaBNA, 0)
    Call ibask(udGPIB0, IbaPAD, 0)
    Call ibconfig(0, IbcAUTOPOLL, 1)
    Call ibconfig(0, IbcEOSrd, 0)
    SendIFC (0)
    Call ibeot(udDevice, 1)
    Call ibtmo(udDevice, T3s)
    Init370 = udDevice
End Function

0 项奖励
1 条消息(共 4 条)
3,643 次查看

你好,

 

是Readdev中的哪一句报错的呢,把报错的信息贴上来大家讨论下如何?

0 项奖励
2 条消息(共 4 条)
3,627 次查看
Readdev函数中 运行到第三句出错。 call ibrd(tek370aid,reply) 如果把这句注释掉 就不会报错了。 报错信息就是excel自身报错 说是microsoft EXcel 运行错误。 程序本身没有报错信息。 看了NI spy里面, 也是到ibrd这句就停了。
0 项奖励
3 条消息(共 4 条)
3,622 次查看

你好,

 

ibrd函数使用方式为ibrd (int ud, void *rdbuf, size_t count),而你的代码中只有两个参数,这会不会是导致错误的原因呢。

另:建议在比较熟悉的编程环境中调试成功了之后,再在Excel中编写代码

0 项奖励
4 条消息(共 4 条)
3,588 次查看