无法通过 GPIB 以简单的方式从 Agilent 53131A 读取
Unable to read from Agilent 53131A by GPIB in the simple way
您好,我正在使用 LabView 2012、Delphi XE7 和 GPIB(我认为是 488.2)、Win7 SP1 和 Agilent 53131A。
我使用了给定的 NI 示例。
NI Labview 示例 - 在 LabVIEW 的帮助中找到 - GPIB.vi。
我尝试通过写入和读取来查询来自 2 个频道的频率,它们都成功了。
它们被连续发送和读取。
- *IDN?
- :FUNC 'FREQ 1'
- :READ:FREQ?
如果成功,则表示已成功安装和配置 GPIB for Agilent 和 NI MAX 以及驱动程序。
我也能用KeySight Connection Expert的写和读了,同样成功了。
但是,当我使用given NI example in Delphi的时候。最初它被保存为 Delphi 3 或 4.
我使用了通用计数器的 Scope Simple 示例。我主要用它来以简单的方式写作和阅读。它只需要初始化,read/write 和清理
我更改了如下代码,在SimpleForm.pas
检测到的设备位于 GPIB0::3::INSTR
因此,在第 32 行,
PRIMARY_ADDR_OF_COUNTER = 3;
要写入和读取的字符串,在第 132 行,
CommandBox.Text := '*IDN?';
然后编译没有错误运行.
写入字符串成功
但是看了之后,还是没有成功。
字符串输出应该是 ' HEWLETT-PACKARD,53131A,0,4806'
.
程序最后报错如下:-
Unable to read from device
ibsta = SC000 <ERR TMO>
iberr = 6 <EABO>
ibcntl = 0
从这些读数中,我发现:-
EABO 表示中止
我对GPIB的工作不熟悉。请指教。
你说得对,EABO
是中止的标识符。另外,我们从ibsta = SC000 <ERR TMO>
可以看出,中止的原因是GPIB超时错误。我不熟悉 Keysight Connection Expert 或您的仪器,但由于错误是由 GPIB 超时引起的,最可能的原因是:
- 查询格式不正确,仪器认为这只是一个不需要响应的写入语句。 (这大概就是写函数没有报错,读函数却超时的原因吧。)
- 查询格式不正确,仪器返回错误。
- 仪器需要启用 'Talker' 功能才能发送数据。 (大多数工具通过查询自动执行此操作。)
有关通用 GPIB 命令的更多信息,请参阅来自 National Instruments 的人员reference。
您好,我正在使用 LabView 2012、Delphi XE7 和 GPIB(我认为是 488.2)、Win7 SP1 和 Agilent 53131A。
我使用了给定的 NI 示例。
NI Labview 示例 - 在 LabVIEW 的帮助中找到 - GPIB.vi。
我尝试通过写入和读取来查询来自 2 个频道的频率,它们都成功了。 它们被连续发送和读取。
- *IDN?
- :FUNC 'FREQ 1'
- :READ:FREQ?
如果成功,则表示已成功安装和配置 GPIB for Agilent 和 NI MAX 以及驱动程序。
我也能用KeySight Connection Expert的写和读了,同样成功了。
但是,当我使用given NI example in Delphi的时候。最初它被保存为 Delphi 3 或 4.
我使用了通用计数器的 Scope Simple 示例。我主要用它来以简单的方式写作和阅读。它只需要初始化,read/write 和清理
我更改了如下代码,在SimpleForm.pas
检测到的设备位于 GPIB0::3::INSTR
因此,在第 32 行,
PRIMARY_ADDR_OF_COUNTER = 3;
要写入和读取的字符串,在第 132 行,
CommandBox.Text := '*IDN?';
然后编译没有错误运行.
写入字符串成功
但是看了之后,还是没有成功。
字符串输出应该是 ' HEWLETT-PACKARD,53131A,0,4806'
.
程序最后报错如下:-
Unable to read from device
ibsta = SC000 <ERR TMO>
iberr = 6 <EABO>
ibcntl = 0
从这些读数中,我发现:-
EABO 表示中止
我对GPIB的工作不熟悉。请指教。
你说得对,EABO
是中止的标识符。另外,我们从ibsta = SC000 <ERR TMO>
可以看出,中止的原因是GPIB超时错误。我不熟悉 Keysight Connection Expert 或您的仪器,但由于错误是由 GPIB 超时引起的,最可能的原因是:
- 查询格式不正确,仪器认为这只是一个不需要响应的写入语句。 (这大概就是写函数没有报错,读函数却超时的原因吧。)
- 查询格式不正确,仪器返回错误。
- 仪器需要启用 'Talker' 功能才能发送数据。 (大多数工具通过查询自动执行此操作。)
有关通用 GPIB 命令的更多信息,请参阅来自 National Instruments 的人员reference。