微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > LabVIEW编程实时控制KEITHLEY 6517A静电计

LabVIEW编程实时控制KEITHLEY 6517A静电计

时间:11-30 来源:互联网 点击:

LabVIEW编程实时控制KEITHLEY 6517A静电计

基于GPIB接口总线,采用6517A中最简单的按钮命令,在LabVIEW5.1平台上实现了对6517A面板操作的实时控制和信息的同步显示。
  关键词:LabVIEW编程;计算机模拟;6517A静电计

Hefei 230029, China)

  LabVIEW提供了任意一个程序调用另一个LabVIEW程序的办法,即将后者作为一个子程序(即subVI)。因此在实验站的数据采集主程序中,将模拟的6517A作为主程序调用的subVI嵌入其中(当然这个子程序完全可以不依赖于主程序而能够独立运行)。根据主程序的要求,6517A的subVI具备以下特点:
  代码简洁,执行效率高;完全能实现真实面板上各个按键的功能,并可以基本同步显示6517A显示的各种信息;独立的窗口,不在视觉上干扰主程序窗口,以方便用户的使用。
  对于复杂的未编译的LabVIEW程序,要求代码尽可能简洁,这有益于提高运行速度。而且考虑到6517A参数的调整仅仅是实验站数据采集与控制的一小部分,我们未使用KEITHLEY公司随仪器提供的LabVIEW子程序。对于6517A,有三个途径可以实现面板按键的功能:一是用它的SCPI命令中有关功能选择的命令,如使用SENSe命令组里的各种命令选择测量内容(电压、电流、电阻和电荷)以及与测量这些量有关的各类参数[1]。这种方式功能全面,可用一条足够长的命令直接实现某个功能,而这个功能可能需要按多次按键才能实现,而且用户勿需知道6517A前面板的显示信息(KEITHLEY公司提供的LabVIEW子程序即是这样编写的)。缺点是代码命令长、书写复杂,而且要对所有的SCPI命令非常熟悉。另一种是使用SYSTem命令组里的SYSTem:KEY〈NRf〉命令。6517A功能面板上每一个功能键均对应了一个数字,如执行:SYSTem:KEY 15相当于人工按一次按键V(电压)。使用这种方式基本就是在计算机显示器上“复制”了前面板的按键,虽然设置某个参数需要多次按键且需要在计算机上同步显示选择菜单,但其代码简洁,且可以利用LabVIEW提供的界面功能,在外型上完全模拟6517A的前面板,不失为一种好方法。第3种方法是用DDC语言,该语言的语法简洁,但不易记忆,难以维护,功能也不强。我们在编写时未予考虑。?

  整个6517A子程序是一个大的whileloop循环。在循环内是前面板上所有按键对应的命令和显示子程序,循环结束的条件是Boolean按钮“RETURN”=false。这种结构有两个作用,由于LabVIEW程序的执行是并行的,因此可以随时接受任意一个虚拟按键的命令,另一是计算机屏幕的显示与静电计的显示基本同步。子程序被设置为“调用时打开、结束后关闭”,在视觉上不影响主程序的使用,即在按下RETURN后,子程序窗口即被关闭。
2.2按钮
  图1是6517A subVI的界面,图中字符“Ω”已被替换为“Ohm”。它尽量模仿了实际仪器的前面板,只不过是用RETURN按钮取代了6517A的POWER开关。每个按钮的机械动作置为“Latch when Released”,这样每按一次图中的按钮,程序通过GPIB接口给6517A发送一个相应的命令,完成手工按键的动作。随即按钮浮起,不会导致误动作。按钮对应的程序是一个“true?false” case structure。在True CASE中写入命令:SYSTem:KEY 〈NRf〉(图2),False CASE中为空。当用鼠标点击按键时,6517A将根据命令完成相应的按键动作。如图中的命令,GPIB write控件将:SYST:KEY 15发送给6517A,完成一次按“V”键。


?

  为了更好的显示测量值的单位,6517A显示行存在一些特殊符号,如次显示行的温度符号℃,主显示行的电阻单位Ω(欧姆),量级单位μ(即表示10-6)等。但实际测试表明计算机接收到的6517A的信号,只能正确显示出标准ASCII码中的数字0~9、字母A~B和a~b,因此仅使用上述命令将显示乱码,无法正确反映6517A的全部显示信息。作者经过分析,得到了非ASCII码经过GPIB接口后对应的编码如下(表1)。

?


  RETURN键是控制整个子程序的逻辑量。但由此也带来一个问题,程序运行时发现当第一次参数设置完毕,退出子程序后,RETURN有可能仍保持在false状态,那么紧接着第二次调用子程序时,将因为RETURN=false而无法进入循环(或仅循环1次便结束)。为此利用了LabVIEW的并行处理特性,在RETURN置false时将完成2个动作,首先是将逻辑常数True赋值给RETURN(利用了local variable,不会干扰其中断循环的作用),然后再退出循环,这样保证了下一次的调用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top