91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

6314GPIB寫命令

關于6314的問題想請教,
我用VC編寫了測試6314GPIB命令的小程序,運行第一次可以控制,但運行第二次就不能向儀器寫命令了這是什么原因呢?
我寫的程序調用的是VISA自帶的例子,我只用了
viopen();
viwrite();
這兩個函數而已,通過viwrite()向6314寫命令,程序第一次可以正常運行,退出程序后,在打開程序時,提示viwrite()出錯.
Chroma提供的CVI驅動我也調用了,還是有同樣的問題,
我想是在退出時處理不正確吧,
不知6314在退出時要做什么特殊處理才不影響再次DOWNLOAD.
以下是我用VC寫的程序:
#include
#include
#include
#include
#include "visa.h"
static ViUInt32  rcount;
static unsigned char data[1024];
static ViStatus status;
static ViSession defaultRM;
static ViSession inst;
static char stringinstruct[1024];
int main(void)
{
status = viOpenDefaultRM (&defaultRM);
status = viOpen (defaultRM, "GPIB::7::INSTR", VI_NULL, VI_NULL, &inst);
    strcpy (stringinstruct,"*IDN?\n");
    status = viWrite (inst, (ViBuf)stringinstruct,strlen(stringinstruct), &rcount);
status = viRead (inst, data, 3000, &rcount);
cout< strcpy (stringinstruct,"CONFigure:REMote OFF");
status = viWrite (inst, (ViBuf)stringinstruct,strlen(stringinstruct), &rcount);
    status = viClose (inst);
    status = viClose (defaultRM);
    return 0;
}
全部回復(9)
正序查看
倒序查看
wolf2008
LV.3
2
2008-05-19 08:30
可否將程序提供出來,供參考一下呢?
0
回復
marsyax
LV.1
3
2008-05-19 12:00
是否在退出時沒有復原6314?
0
回復
owen.zhao
LV.4
4
2008-05-19 14:40
1、問題描述簡單了些,幫不上什麼忙.
2、Chroma有提供6310 的Visa驅動,自己調用gpid的方式已很少用了.
3、控制儀器選驅動盡量順序是:IVI  VISA  GPIB/COM.
0
回復
owen.zhao
LV.4
5
2008-05-19 20:54
1. 描述還不是很清楚, 提示viWrite()出錯是什么?
2. 不過出錯的原因是退出時沒有viClose.
3. 順序(visa例):
  a. viOpenDefaultRM
   b. viOpen
   c. viWrite/viRead
   d. viClose
0
回復
owen.zhao
LV.4
6
2008-05-19 20:54
1. 描述還不是很清楚, 提示viWrite()出錯是什么?
2. 不過出錯的原因是退出時沒有viClose.
3. 順序(visa例):
  a. viOpenDefaultRM
   b. viOpen
   c. viWrite/viRead
   d. viClose
0
回復
kiko
LV.5
7
2008-05-22 17:32
你使用LV編寫該程序,太好了;你可以從Chroma網站上下載Chroma 免費提供的LV 驅動,那裡面就有你要的資料﹒
0
回復
owen.zhao
LV.4
8
2008-05-22 19:41
@kiko
你使用LV編寫該程序,太好了;你可以從Chroma網站上下載Chroma免費提供的LV驅動,那裡面就有你要的資料﹒
1. 嚴格的說,樓主的流程直通從上到下,沒有基本邏輯判斷, 個人認為還算不上真正的程序, :-) 一起努力吧!
調用一個函數比較好的方法如下,才能即時跟蹤錯誤,:
if ((status = viOpenDefaultRM (&defaultRM)) < 0)
  return status;

2. "REMote OFF"沒實際意義, 好像只針對Rs232.
0
回復
2008-05-22 23:54
@owen.zhao
1.嚴格的說,樓主的流程直通從上到下,沒有基本邏輯判斷,個人認為還算不上真正的程序,:-)一起努力吧!調用一個函數比較好的方法如下,才能即時跟蹤錯誤,:if((status=viOpenDefaultRM(&defaultRM))<0)  returnstatus;2."REMoteOFF"沒實際意義,好像只針對Rs232.
我發的程序只是想說明我看到的現象,并不是完整的程序,
有條件的話,可以在VC運行上面的程序觀察一下是否看到一樣的現象
用NI提供的VISA軟件可以隨意DOWNLOAD,為什么我寫的這段小程序就不行呢
請針對這個問題展開討論
0
回復
owen.zhao
LV.4
10
2008-05-26 10:32
@warlosetemp
我發的程序只是想說明我看到的現象,并不是完整的程序,有條件的話,可以在VC運行上面的程序觀察一下是否看到一樣的現象用NI提供的VISA軟件可以隨意DOWNLOAD,為什么我寫的這段小程序就不行呢請針對這個問題展開討論
最後一貼
int main(void)

{
if ((status = viOpenDefaultRM (&defaultRM)) < 0) {
printf("Could not open a session to the VISA Resource Manager!\n");      
return status;
}

    if ((status= viOpen (defaultRM, "GPIB::7::INSTR", VI_NULL, VI_NULL, &inst))<0 {
printf ("An error occurred opening a session !\n");
return status;
}

if ((status = viWrite (inst, "*IDN?", 5, &numInstrs)) < 0){
printf ("An error occurred write command!\n");
return status;
}
if ((status = viScanf (instrSession, "%*[^,],%*[^,],%*[^,],%[^\n]", istringinstruct)) < 0)
printf ("An error occurred read command!\n");
return status;
    }
    else
printf("%s \n",stringinstruct;)  

    status = viClose (inst);
    status = viClose (defaultRM);  

    printf ("\nHit enter to continue.");
    fflush(stdin);
    getchar();

    return 0;  
}
0
回復
主站蜘蛛池模板: 资兴市| 全椒县| 伊金霍洛旗| 小金县| 莱州市| 屯留县| 荃湾区| 隆回县| 永仁县| 南靖县| 罗田县| 尤溪县| 乐平市| 炎陵县| 山东省| 邮箱| 湖北省| 科尔| 古浪县| 电白县| 武山县| 南阳市| 江门市| 遂平县| 日照市| 台前县| 焦作市| 盘山县| 墨江| 永宁县| 德保县| 漯河市| 元江| 蒙城县| 西盟| 门头沟区| 永胜县| 建水县| 遵义县| 扶风县| 三穗县|