找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 849|回复: 5

VISA应用求助

[复制链接]
hitlhs 该用户已被删除
发表于 2009-5-15 21:40:46 | 显示全部楼层 |阅读模式
我基于VISA用VB。NET编写的以下的语句
status = visa32.viPrintf(vi, ":read:chp:chp?" & vbLf)
status = visa32.viPrintf(vi, "*wai" & vbLf)
status = visa32.viScanf(vi, "%f", sult)
TextBox7.Text = CStr(sult)
其中sult是double类型数据
问题:返回的数据为0,即sult为0
可我用串口调试工具结果正常,请大虾们帮帮忙,在下感激不尽
我自已学得是  status = visa32.viScanf(vi, "%f", sult)出了问题
发表于 2009-5-16 10:15:09 | 显示全部楼层
你跟一下程序,看看status得到的是什么值,还有串口调试可以的话,下面数据是一直在发送还是怎么,考虑下流程是否正确?
回复 顶

使用道具 举报

hitlhs 该用户已被删除
 楼主| 发表于 2009-5-16 13:23:43 | 显示全部楼层
status得到的是状态代码,用于判断程序执行是否出错。用I/O口调试就得出结果:-7.47850000E+001
回复 顶

使用道具 举报

hitlhs 该用户已被删除
 楼主| 发表于 2009-5-16 13:24:14 | 显示全部楼层
2# 3no
status得到的是状态代码,用于判断程序执行是否出错。用I/O口调试就得出结果:-7.47850000E+001
回复 顶

使用道具 举报

发表于 2009-5-16 15:38:01 | 显示全部楼层
4# hitlhs

不是很清楚你下面是怎么回的数据,用串口调试是直接打开就可以收到数据,还是需要下发一个命令,如果有多的串口或是机器,可以试试把回来的先分根出来,接到另外一个串口上,公用2、3脚,那个串口用串口调试收,这边用你的程序收。
回复 顶

使用道具 举报

hitlhs 该用户已被删除
 楼主| 发表于 2009-5-16 19:06:36 | 显示全部楼层
5# 3no
串口调试打开就可以直接收到数据,不用再发布命令。仪器和接口也只是一个,完整的程序如下:
        status = visa32.viOpenDefaultRM(defrm)
        status = visa32.viOpen(defrm, "gpib0::18::instr", 0, 0, vi)
        status = visa32.viPrintf(vi, "*cls" & vbLf)
        status = visa32.viPrintf(vi, "*rst" & vbLf)
        status = visa32.viPrintf(vi, "syst:comm:serial,syst:comm:gpib" & vbLf)
        result = Val(TextBox1.Text)
        status = visa32.viPrintf(vi, "sens:freq:cent %fMHz" & vbLf, result)
        result = Val(TextBox2.Text)
        status = visa32.viPrintf(vi, "sens:freq:span %fkHZ" & vbLf, result)
        result = Val(TextBox4.Text)
        status = visa32.viPrintf(vi, "sens:pow:rf:att %fdB" & vbLf, result)

        If CheckedListBox1.GetItemChecked(0) = True Then
            status = visa32.viPrintf(vi, ":read:chp:chp?" & vbLf)
            status = visa32.viPrintf(vi, "*wai" & vbLf)
            status = visa32.viScanf(vi, "%f", sult)
            TextBox7.Text = cstr(sult)
      End If
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 14:10 , Processed in 0.034334 second(s), 9 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表