我用VC編寫(xiě)了測(cè)試6314GPIB命令的小程序,運(yùn)行第一次可以控制,但運(yùn)行第二次就不能向儀器寫(xiě)命令了這是什么原因呢?
我寫(xiě)的程序調(diào)用的是VISA自帶的例子,我只用了
viopen();
viwrite();
這兩個(gè)函數(shù)而已,通過(guò)viwrite()向6314寫(xiě)命令,程序第一次可以正常運(yùn)行,退出程序后,在打開(kāi)程序時(shí),提示viwrite()出錯(cuò).
Chroma提供的CVI驅(qū)動(dòng)我也調(diào)用了,還是有同樣的問(wèn)題,
我想是在退出時(shí)處理不正確吧,
不知6314在退出時(shí)要做什么特殊處理才不影響再次DOWNLOAD.
以下是我用VC寫(xiě)的程序:
#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;
}