与Visa设备超时错误

26日视图(30天)
hyxamp
hyxamp 2023年1月24日
编辑: chrisw23 2023年1月25日
你好,
我使用Matlab 2202 b和sucessfuly建立了使用visadev TCPIP连接我的示波器。我用的是 编程指南 接收数据的范围。这是我的一个非常简单的示例代码:
obj = visadev (“TCPIP0:: 192.168.1.2:: inst0:: INSTR”);
obj。超时= 30;
fopen (obj);
写入文件(obj,“WAV:明星1”);
写入文件(obj sprintf (“WAV:虽然我”,1000));
写入文件(obj sprintf (“WAV:酸C %我”1));
写入文件(obj,“WAV:数据?”);
data =从文件中读(obj);
% data = binblockread (obj int8);
明确(obj);
简短的解释:开放签证设备,开始传输波形样本1,转移1000个样本,要求使用从文件中读数据,或binblockread读取数据。“WAV:数据?'命令阻止(binblock)的范围和查询数据。这个效果很好,我的电脑没有任何依赖项的范围设置(例如扫描基线的范围)。范围是connectd计算机局域网电缆和开关。设备都在同一个subnetmask,电脑使用ip地址192.168.1.1。
现在我改变了位置。相同的范围,其他笔记本电脑和Matlab版本2022。在这种情况下,笔记本电脑直接连接到通过局域网电缆范围。两个设备之间的通信效果很好但只是在依赖的时基设置范围。如果扫描基线是低,假设1毫秒以下,我可以使用上面的脚本接收数据。如果我增加扫描基线(范围越来越慢的采集时间),我得到一个timout错误从文件中读。同一个脚本工作的一个笔记本电脑导致的问题,现在在一个另一个。超时错误消息出现后很快我使用从文件中读命令。速度远远超过30秒,在签证定义的设备。这是怎样发生的呢? Binblockread also returns an error: "wrong format". Of course, binblockread is expecting something starting with #9... but did not get any values. I guess is the same timeout problem.
我昨天搜索几个小时为了解决这个问题,但是没有发现任何的解决方案。还有一个在Python示例 编程指南 638页但没有巨大差异相比我的脚本(与python)但我也没有经验。你有什么主意吗?

答案(2)

chrisw23
chrisw23 2023年1月25日
编辑:chrisw23 2023年1月25日
考虑以下范围
触发系统<前置触发器/准备/触发>
采集系统< startFromTrigger /运行/完成>
范围状态子系统可以配置为发送ServiceRequest在一定条件下(即触发发生)。
重要的是要知道状态之前请求WFM数据范围。长时基值时间触发就绪状态(前置触发器intervall)和触发和收购完成状态之间的时间可以很长。
似乎你发送WFM请求期间活跃数据采集可能导致设备相关的错误。

hyxamp
hyxamp 2023年1月25日
编辑:hyxamp 2023年1月25日
嗨,克里斯,
好的答案,非常感谢!在我脚本的一些地方,我问,等待停止触发:
iWrite (obj,“TRMD单”);
triggerStat = iQuery (obj,“触发:地位?”);
~ strcmp (triggerStat (1: end-1),“停止”)& & ~ strcmp (triggerStat (1: end-1),“FStop”)
暂停(0.2);
triggerStat = iQuery (obj,“触发:地位?”);
结束
iWrite和iQuery其他的功能发送/请求数据. .我明天可以测试这个下载功能。“WAV:数据?'命令阻止范围但你是对的。也许我应该提前停止触发器,等待停止触发和比请求数据。不幸的是,没有命令读取采集的范围。我想,如果停止触发器,收购。但是我还是想知道,为什么我没有任何问题与我的电脑。我有点困惑超时的信息从文件中读,为什么这个消息似乎比我快得多30秒超时设置。
1评论
chrisw23
chrisw23 2023年1月25日
编辑:chrisw23 2023年1月25日
此次收购完成检测取决于你的胳膊触发器。在示例中,如果你使用单一序列收购你希望停止状态作为一个指标完成的收购。所以查询触发状态是正确的方法,但你必须知道什么是预期。
下面是美国泰克触发状态
% 武装 表明,示波器是信息获取前置触发器。
% 汽车 表明,示波器的自动模式和获得数据甚至没有一个触发器。
% 准备好了 表明所有前置触发器信息获得和示波器是准备接受一个触发器。
% 保存 表明,示波器在保存模式并不是获取数据。
% 触发 表明,示波器触发和收购后触发信息。
一个提示 “错误的格式”例外。确保设备(范围)输出缓冲区为空之前任何新的查询。我不使用工具箱,但也许有一个刷新命令。我用IviVisa通过. net。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!