完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我使用的是matlab R2014a和带有GPIB-USB线的安捷伦万用表3458a。
我需要在程序中的特定时刻读取当前值(DCI)。 例如在1m:30s读取第一个值,在2m:45s读取第二个值....等。 任何人都知道如何处理它。 谢谢 以上来自于谷歌翻译 以下为原文 Hello everyone, I am using matlab R2014a and agilent multimeter 3458a with GPIB-USB cable. I need to read the value of the current (DCI) in a specific instant during my program. for example in 1m:30s reading the first value, in 2m:45s reading the second value....etc. Anyone has an idea how to deal with it. Thank you |
|
相关推荐
3个回答
|
|
有很多方法可以做到这一点:1)在MATLAB中设置一个定时器,以特定的间隔触发。
在计时器的回调功能中,您可以从仪器读取测量值。 2)更简单的设置可能是在MATLAB中使用tic和toc函数或相关函数(如etime和time)在特定时间过后触发测量。 以上来自于谷歌翻译 以下为原文 There are many ways to do this: 1) Setup a timer in MATLAB to fire at the specific intervals. In the timer's callback function, you can read the measurement from your instrument. 2) A simpler setup may be to use the tic and toc functions, or related functions like etime and time, in MATLAB to trigger the measurements after the specific time has elapsed. |
|
|
|
fen556 发表于 2018-10-3 10:33 感谢您的回复,我可以使用计时器,但问题是如何在特定时间内只读取一个值并存储该值以立即在文本框中显示它。 我尝试使用dmm:fprintf(dmm,'dci 10e-6'); %来测量当前数据= fread(dmm,1,'short')%只能读取一个值我的程序中还有其他代码行来控制超时,内存......等我不知道是否有 修改其中一些以获得我正在寻找的东西;这是我的程序(我在keyight论坛中找到它):清除所有; 关闭所有; CLC; dmm =签证('AGILENT','GPIB0 :: 22 :: INSTR'); set(dmm,'InputBufferSize',400000); set(dmm,'timeout',25); %设置超时设置为25秒(dmm,'ByteOrder','bigEndian'); 的fopen(DMM); fprintf(dmm,'reset'); fprintf(dmm,'end on'); %设置正确的EOL,如果内存关闭fprintf(dmm,'id?'),则使用end; id = fscanf(dmm); id fprintf(dmm,'mem fifo'); %清除内存中的所有先前数据并设置为fifo操作fprintf(dmm,'dci 10e-6')fprintf(dmm,'trig auto'); fprintf(dmm,'aper 1.4e-6'); fprintf(dmm,'timer 1e-3'); fprintf(dmm,'nrdgs 1000,timer'); fprintf(dmm,'tarm sgl'); %将仪器暂停一次(1); %等待读取进入内存然后将它们拉出fprintf(dmm,'RMEM 1,1000'); data = fread(dmm,1,'short')%从仪器读取数据fclose(dmm);编辑:student ch于2015年7月29日上午11:14 以上来自于谷歌翻译 以下为原文 Thank you for your reply, I could use the timer but the problem is how to read only one value in a specific time and store this value to display it immediately in a text box. I tried using the dmm : fprintf (dmm,'dci 10e-6'); %to measure the current data = fread(dmm,1,'short') % to read only one value There are other code lines in my program to control the timeout, the memory...etc I don't know if I have to modify some of them to have what I am looking for ;this is my program (I found it in keysight forums): clear all; close all; clc; dmm = visa('AGILENT','GPIB0::22::INSTR'); set (dmm,'InputBufferSize',400000); set (dmm,'timeout', 25); %Set timeout to 25 seconds set (dmm, 'ByteOrder', 'bigEndian'); fopen(dmm); fprintf (dmm,'reset'); fprintf (dmm,'end on'); %sets up the correct EOL, use end always if memory off fprintf (dmm,'id?'); id = fscanf (dmm); id fprintf (dmm,'mem fifo'); %clears any previous data in memory and sets for fifo operation fprintf (dmm,'dci 10e-6') fprintf (dmm,'trig auto'); fprintf (dmm,'aper 1.4e-6'); fprintf (dmm,'timer 1e-3'); fprintf (dmm,'nrdgs 1000,timer'); fprintf (dmm,'tarm sgl'); %Arm the instrument once pause(1); %wait for the reading to get into memory before pulling them out fprintf (dmm,'RMEM 1,1000'); data = fread(dmm,1,'short') %read data from instrument fclose(dmm); Edited by: student ch on Jul 29, 2015 11:14 AM |
|
|
|
oqw1 发表于 2018-10-3 10:48 这三条线装置仪器,进行测量并将其检索到MATLAB:fprintf(dmm,'tarm sgl'); %将仪器暂停一次(1); %等待读取进入内存然后将它们拉出fprintf(dmm,'RMEM 1,1000'); data = fread(dmm,1,'short')%从仪器读取数据您可以将其放入您的时间回调代码中。 如果您使用计时器,请记住将'dmm'对象作为时间对象的参数之一传递。 以上来自于谷歌翻译 以下为原文 These three lines arm the instrument, make the measurement and retrieve it to MATLAB: fprintf (dmm,'tarm sgl'); %Arm the instrument once pause(1); %wait for the reading to get into memory before pulling them out fprintf (dmm,'RMEM 1,1000'); data = fread(dmm,1,'short') %read data from instrument You can put this into your time callback code. Remember to pass the 'dmm' object as one of the parameters to the time object if you are using timers. |
|
|
|
只有小组成员才能发言,加入小组>>
1061 浏览 0 评论
2299 浏览 1 评论
2087 浏览 1 评论
1959 浏览 5 评论
2832 浏览 3 评论
830浏览 1评论
关于Keysight x1149 Boundary Scan Analyzer
611浏览 0评论
N5230C用“CALC:MARK:BWID?”获取Bwid,Cent,Q,Loss失败,请问大佬们怎么解决呀
707浏览 0评论
1389浏览 0评论
1062浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 12:06 , Processed in 1.549047 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号