找回密码
 注册
搜索
查看: 993|回复: 18

[讨论] CMU200 程控RESET问题!

[复制链接]
发表于 2008-2-18 22:56:18 | 显示全部楼层 |阅读模式
向CMU200发送
     ibwrt(CMUBASE,"*RST;*CLS;*OPC?",15);
     ibwrt(CMUBASE,"*IDN?",5);
虽然返回正常操作成功~但还多返回了两个
ERROR MESSAGES "-410 Query INTERRUPTED"
请问是什么问题啊
 楼主| 发表于 2008-2-18 23:44:16 | 显示全部楼层
知道的朋友请指导下啊谢谢~~~~
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 00:03:45 | 显示全部楼层
为什么我使用的指令如果有返回的,当执行下一条指令是肯定会出现一条
"-410 Query INTERRUPTED"
点评回复

使用道具 举报

发表于 2008-2-19 08:21:54 | 显示全部楼层
你发了*OPC?、*IDN?,但却没有读取CMU给你的返回值,造成Query中止
每次“?”之后,都要读出CMU给你的返回值
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 08:27:52 | 显示全部楼层
如何读取啊???他不是自动返回一个值嘛~还望指教~~
点评回复

使用道具 举报

发表于 2008-2-19 09:36:59 | 显示全部楼层
与ibwrt相对的就是ibrd了吧,用这个函数读就可以了。
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 10:07:41 | 显示全部楼层
为什么以这个顺序执行为什么会出错~
ibwrt(CMUBASE,"*RST",4);
ibwrt(CMUBASE,"*OPC?",5);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));  //char InBuffer [100]

而这个就可以~~
ibwrt(CMUBASE,"*IDN?",5);  
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));
ibwrt(CMUBASE,"*OPC?",5);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));  //char InBuffer [100]
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 10:48:16 | 显示全部楼层
为什么我用ibrd(CMUBASE,InBuffer,sizeof(InBuffer)); 读取*OPC?时老是会有问题~
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 10:51:52 | 显示全部楼层
老是提示Function ibrd :(iberr ==6[0x6])
请高手指教!!!!
点评回复

使用道具 举报

发表于 2008-2-19 12:11:45 | 显示全部楼层
笨笨同学!
meset(InBuffer,0,100);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));
你再试试,编程不要盲目!要向有经验的人请教下!知道没有啊?[em01]
点评回复

使用道具 举报

 楼主| 发表于 2008-2-19 14:59:24 | 显示全部楼层
谢谢楼上的指教~我刚入门仪器控制,也没熟悉得人搞这行业的,所以只能来这里问,
楼上的大哥看来对这方面很熟,希望以后能得到你的指导,我QQ:94292008 MSN:summer_sdw@hotmail.com  EMAL:summer.shen@eglobalmfg.com
再次非常感谢!!!
点评回复

使用道具 举报

发表于 2008-2-19 15:51:06 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>summersdw</I>在2008-2-19 10:07:41的发言:</B>
为什么以这个顺序执行为什么会出错~
ibwrt(CMUBASE,"*RST",4);
ibwrt(CMUBASE,"*OPC?",5);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));  //char InBuffer [100]

而这个就可以~~
ibwrt(CMUBASE,"*IDN?",5);  
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));
ibwrt(CMUBASE,"*OPC?",5);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));  //char InBuffer [100]</DIV>

什么问题,提示什么?
点评回复

使用道具 举报

 楼主| 发表于 2008-2-21 13:56:20 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>pp_boby</I>在2008-2-19 12:11:45的发言:</B>
笨笨同学!
meset(InBuffer,0,100);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));
你再试试,编程不要盲目!要向有经验的人请教下!知道没有啊?[em01]</DIV>


好像不行啊~我用CVI6.0用meset(InBuffer,0,100);这个函数会报错~怎么回事啊?
用了不行。。。请高手指教谢谢!!!
点评回复

使用道具 举报

 楼主| 发表于 2008-2-21 14:27:01 | 显示全部楼层
我每次发送完*OPC?指令后,
无论用不用ibrd(CMUBASE,InBuffer,sizeof(InBuffer));  //char InBuffer [100]
都会多出现一条"-410 Query INTERRUPTED",不知道是为什么啊~请高手指教指教~~
点评回复

使用道具 举报

发表于 2008-2-22 08:58:46 | 显示全部楼层
建议summersdw不要再用ibrd、ibwrt,不要再用IEEE488.2了,改用VISA,虽然实际上基本是一个东西
用VIVQueryf试一下
另,*RST后建议稍加延迟再*OPC?
点评回复

使用道具 举报

发表于 2008-2-22 10:44:41 | 显示全部楼层
memset(InBuffer,0,100);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));
不好意思,写错了!更正下。
我觉得这个问题的根源就是你写的指令之前,没有对CAHR函数清空![em01]
点评回复

使用道具 举报

发表于 2008-2-22 11:19:02 | 显示全部楼层
留个邮件联系下1
powerisbn@126.com
[em01]
点评回复

使用道具 举报

 楼主| 发表于 2008-2-22 12:55:03 | 显示全部楼层
加了这个清空函数还是老问题:(

memset(InBuffer,0,100);
ibrd(CMUBASE,InBuffer,sizeof(InBuffer));

还是会出现"-410 Query INTERRUPTED"
点评回复

使用道具 举报

发表于 2008-3-7 15:07:20 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>cuijw</I>在2008-2-22 8:58:46的发言:</B>
建议summersdw不要再用ibrd、ibwrt,不要再用IEEE488.2了,改用VISA,虽然实际上基本是一个东西
用VIVQueryf试一下
另,*RST后建议稍加延迟再*OPC?</DIV>


这问题同软件接口没有关系,如果其他人的建议楼主用了后还是问题重现,可以试一下将
//char InBuffer [100];
InBuffer数组定义大一点,查询时,如果接受buff的size太小,仪器会反馈查询终止消息。而你的指令执行不会受到影响。
char InBuffer [400];
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-13 18:09 , Processed in 0.062889 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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