当前位置:首页 > 基于泰克的远程控制接口编程设计
图10 Format Into String
(二)问题2:
仪器连入局域网,IP地址也根据网络通讯要求设置正确,但在MAX中提示无法建立会话。
解决:仪器的LAN Device Name一般用instx,x是数字。LAN Device Name设置错误也会导致无法建立会话。
(三)问题3:
无法返回信号发生器产生的波形。
解决:读信号发生器的波形必须有值可读。所以必须先用VISA Write函数写入需要仪器返回数据的SCPI命令,然后再用VISA Read函数对仪器返回的值进行编辑。 本来想利用语句:SOUR:VOLT:AMPL?使信号发生器实时返回波形幅度,这样可粗略得到信号发生器的波形。但是测试后才发现所得到的其实是波形的峰峰值。后经老师指点,使用call library function node可以根据仪器返回的各个参数(如幅度、频率等)来得到各种设定好的需要的波形(如方波,正弦波等)。由于需要仪器返回的数据较多,在主VI中编写的话会降低程序的可读性,所以考虑编写子VI。共编写了包括方波、正弦波、脉冲、锯齿波、sin(x)/x和直流6个子VI。由于考虑到call library function node节点在拷贝到其他电脑上后须重设lvanlys.dll的路径,所以后来直接改用Function->All Function->Analyze->Signal Processing->Signal Generation内的波形产生节点。其实与之前的方法原理是相同的。
图11 call library function node
21
(四)问题4:
由于对SCPI语言不熟,在编程时经常出错。方波、锯齿波、阶跃按照常规的SCPI语句无法实现,而正弦波、脉冲、三角波、直流等波形可以实现。控制运行模式的语句也出现错误。
解决:仔细研读泰克AFG3000 系列任意波形/ 函数发生器程控命令说明书并理解所需用到的程控命令。如方波的SCPI是SQUARE而非SQUA,相位在SCPI语句中的单位应使用弧度,即rad。
(五)问题5:
在进行程控时有时会出现数据丢失现象,即输入的几个变量的值中有一个值无法改变为设置的值。
解决:由于测试时变量的值有时变有时不变,所以自己但是排除了语句编写错误的因素。曾经考虑添加延时或将VISA Write置于Case循环外以减少程序的复杂度来降低程序运行的时间,但都无济于事。后来经老师查看才发现是控制该变量的SCPI语句写错了。如控制频率的SCPI语句是:SOUR:FREQ %fHz,而错将其写成:SOUR:VOLT:FREQ %fHz。
22
三、运行结果
计算机可以通过网络控制信号发生器产生方波、正弦波、脉冲、锯齿波、sin(x)/x和直流等6种波形,波形的各个参数可以根据需要在可调范围内修改。同时,信号发生器产生的波形会通过网络传输回计算机,并在计算机LabVIEW窗口显示。下面几个图是运行结果截图:
图12
正弦波运行结果
图13
三角波运行结果
23
图14
正弦波(信号发生器运行结果)
注:图12、14不是同一次的波形
控制运行模式产生的效果如下列几幅图(以正弦波为例):
图15 运行模式为 Continuous(连续)运行结果
24
共分享92篇相关文档