我现在要实现两台电脑间通过GPIB卡通信,但是在配置上遇到一系列问题。
首先我在两台电脑上分别装了GPIB卡,然后通过GPIB线连接。
打开NI Max,检测到新增一台GPIB Miscellanenous Resources,GPIB0::INTFC,双击打开VISA Interactive Control,选择Input/Output, 点击Query,报错提示:“VISA: (Hex 0xBFFF003A) 由于安装程序非法(属性已被设置为不一致状态),将无法开始操作。”
社区有搜索到相关内容,链接如下:http://digital.ni.com/public.nsf/allkb/321A97B3D0D4ECCA86256E62004A0CD5,但是不够详细,里面提到的相关命令在GPIB Control输入后都提示“未检测到侦听器(NRFD和NDAC均被置为无效)。”
求教各位大神,有知道应该怎么配置的吗?
已解决! 转到解答。
这个问题我已经解决了。 按照下面链接这个步骤即可。之前测试面板理解错误,一直在用Visa的测试面板,无法发送指令,所以没有进展。安装ni-488.2之后,按照链接步骤的设置即可解决。
Non-Controller需要设置一下,代码如下:
GpibInterface theGpibInterface = new GpibInterface("GPIB0");
theGpibInterface.IsSystemController = false;
theGpibInterface.PrimaryAddress = 23;
Controller可以直接Open就可以write和read了,前提是Non-Controller需要先执行上面的代码,才能检测到。
代码如下:
var rmSession = new ResourceManager();
var resources = rmSession.Find("(ASRL|GPIB|TCPIP|USB)?*");
Regex theGPIBRegex = new Regex(@"GPIB(\d)::(?<value>\d+)::INSTR");
string theGPIBTarget = resources.FirstOrDefault(x => theGPIBRegex.IsMatch(x));
MessageBasedSession mbSession = (MessageBasedSession)rmSession.Open(theGPIBTarget);
但解决通信问题后产生了新的问题,如何起监听服务来监听对方随时可能发过来的信息?
http://digital.ni.com/public.nsf/allkb/321A97B3D0D4ECCA86256E62004A0CD5
你好,请问您的两个GPIB连接上之后,在NI中是显示已连接上吗,我的只显示本电脑上的GPIB卡,扫描仪器会显示仪器连接失败,按照链接中去做,第一步中:ibfind GPIB0,就会报错,显示占用或未连接上;且我电脑上的GPIB卡的名称在IBIC中显示是空。请问您能帮忙解答一下吗