完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
亲爱的大家,我使用matlab连接Agilent 9000X示波器,我有两个信号分别连接到CH1和CH2。
我的目的是使用matlab从1和2通道获取数据。 当我使用以下脚本从单个通道CH1读取数据时,它运行良好。 + fprintf(obj1,':DIGItiZE CHANNEL1'); + + fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1'); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,': WAVEFORM:DATA?'); + + A = binblockread(obj1,'int8'); +但问题是,如果我将CH1更改为CH2,则警告是''在binblockread之前发生超时。''+ fprintf (obj1,':DIGITIZE CHANNEL2'); + + fprintf(obj1,':WAVEFORM:SOURCE CHANNEL2'); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,':WAVEFORM: DATA?'); + + A = binblockread(obj1,'int8'); +注意我在前两种情况下只读了一个通道。 为什么会这样? 我只是将'CHANNEL1'更改为'CHANNEL2',没有其他任何不同.....谢谢你的帮助! 顺便说一句,如果我想同时从CH1和CH2读取数据,我可以这样运行:+ fprintf(obj1,':DIGITIZE CHANNEL1'); + + fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1' ); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,':WAVEFORM:DATA?'); + + A = binblockread(obj1,'int8'); + + fprintf(obj1 ,':DIGITIZE CHANNEL2'); + + fprintf(obj1,':WAVEFORM:SOURCE CHANNEL2'); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,':WAVEFORM:DATA? '); + + B = binblockread(obj1,'int8'); +或者这样:+ fprintf(obj1,':DIGITIZE CHANNEL'); + + fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1'); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,':WAVEFORM:DATA?'); + + A = binblockread(obj1,'int8'); + + fprintf(obj1,': WAVEFORM:SOURCE CHANNEL2'); + + fprintf(obj1,':WAVEFORM:FORMAT BYTE'); + + fprintf(obj1,':WAVEFORM:DATA?'); + + B = binblockread(obj1,'int8'); +我以什么方式确保同步读取CH1和CH2? 好吧,我们仍然需要首先解决'超时'问题。 编辑:lixiaozhou222于2012年5月20日11:37 PM编辑:lixiaozhou222于2012年5月20日11:43 PM编辑:lixiaozhou222于2012年5月20日下午11:44 以上来自于谷歌翻译 以下为原文 Dear everyone, I am using matlab to connect Agilent 9000X scope, I have two signals connected to CH1 and CH2, respectively. My purpose is to get data from both 1 and 2 channel using matlab. When I use the following script to read data from a single channel CH1, it works well. +fprintf(obj1,':DIGITIZE CHANNEL1');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +A=binblockread(obj1,'int8');+ But the problem is, if I change CH1 to CH2, then warning is, ''a time out occured before binblockread.'' +fprintf(obj1,':DIGITIZE CHANNEL2');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL2');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +A=binblockread(obj1,'int8');+ NOTE that I just read a single channel in the previous 2 cases. Why does that happen? I just change 'CHANNEL1' to 'CHANNEL2', and nothing else is different..... Thank you for kind help! By the way, If I want to read data from CH1 and CH2 the same time, could I run it like this: +fprintf(obj1,':DIGITIZE CHANNEL1');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +A=binblockread(obj1,'int8');+ +fprintf(obj1,':DIGITIZE CHANNEL2');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL2');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +B=binblockread(obj1,'int8');+ Or in this way: +fprintf(obj1,':DIGITIZE CHANNEL');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL1');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +A=binblockread(obj1,'int8');+ +fprintf(obj1,':WAVEFORM:SOURCE CHANNEL2');+ +fprintf(obj1,':WAVEFORM:FORMAT BYTE');+ +fprintf(obj1,':WAVEFORM:DATA?');+ +B=binblockread(obj1,'int8');+ In what way can I make sure CH1 and CH2 are read synchronously? Well, we still need to solve the 'time out' problem at first. Edited by: lixiaozhou222 on May 20, 2012 11:37 PM Edited by: lixiaozhou222 on May 20, 2012 11:43 PM Edited by: lixiaozhou222 on May 20, 2012 11:44 PM |
|
相关推荐
1个回答
|
|
我有几点意见: - 您需要查看手册,特别是关于“DIGITIZE”的部分。
具有通道参数的该命令将使示波器仅在该通道上捕获数据。 没有参数的命令将捕获所有打开的通道上的数据。 您可以使用单独的命令打开和关闭通道。 这将解决在2个通道上获取同步数据的问题。 - 您还没有在代码中定义触发器通道,我可以看到。 您可能正在使用Autotrigger。 如果范围在特定时间内未看到有效触发器,则会强制触发。 因为这不是“真正的”触发器,所以DIGITIZE命令仍在等待触发器。 您需要关闭自动触发器,并确保您可以手动使示波器可靠地触发信号。 在查看手册时,请查看“同步”部分。 因为DIGITIZE命令是一个宏,它有一定的局限性,你最好使用“轮询同步”。 - 如果可能,使用通道1和3,而不是1和2.我不确切知道您使用的是哪个范围,但是在许多安捷伦示波器上,如果您使用偶数和奇数,示波器将切换到较慢的采样模式 渠道 - 最后,正如我之前所说的那样。 *停止使用8位数据。 它不太准确,会给你不正确的结果*。 我很抱歉大喊大叫,但我认为我们之前已经讨论过了。 人 以上来自于谷歌翻译 以下为原文 I have a few comments: - You need to take a look at the manual, specifically the section about "DIGITIZE". That command, with a channel parameter, will cause the scope to capture data only on that channel. The command, without a parameter, will capture data on all channels that are turned on. You can turn channels on and off with separate commands. That will resolve the issue of taking synchronous data on 2 channels. - You have not defined a trigger channel in your code, that I can see. You are probably using Autotrigger. If the scope doesn't see a valid trigger within a certain time, it forces a trigger. Because this is not a "real" trigger, the DIGITIZE command is still waiting for a trigger. You need to turn off Autotrigger, and make sure that you can, manually, get your scope to trigger reliably on your signal. While you're looking at the manual, look at the section on "Synchronization". Becasue the DIGITIZE command is a macro, it has certain limitations, and you are better off using "Polling Synchronization". - Use Channels 1 and 3 if possible, rather than 1 and 2. I don't know exactly which scope you are using, but on many Agilent scopes, the scope will switch to a slower sampling mode if you are using both even and odd channels - Lastly, as I have said before. *STOP USING THE 8 BIT DATA. IT IS LESS ACCURATE AND WILL GIVE YOU INCORRECT RESULTS*. I'm sorry to yell, but I think that we have had this discussion before. Al |
|
|
|
只有小组成员才能发言,加入小组>>
1072 浏览 0 评论
2307 浏览 1 评论
2094 浏览 1 评论
1968 浏览 5 评论
2839 浏览 3 评论
841浏览 1评论
关于Keysight x1149 Boundary Scan Analyzer
616浏览 0评论
N5230C用“CALC:MARK:BWID?”获取Bwid,Cent,Q,Loss失败,请问大佬们怎么解决呀
716浏览 0评论
1398浏览 0评论
1072浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-1 10:14 , Processed in 1.388748 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号