虚拟仪器的锁相放大器远程实验系统设计

  仪器网 ·  2012-07-21 00:43  ·  52424 次点击
20世纪80年代末美国成功研制了虚拟仪器,虚拟仪器的发展标志着自动测试与电子测量仪器领域技术发展的一个崭新方向。虚拟仪器是利用PC机的显示模拟传统仪器的控制面板,以多种形式表达输出检测结果,由PC机的强大软件功能实现信号数据的运算、分析、处理,由I/O接口设备完成信号的采集、测量与调理,从而完成各种测试功能的一种计算机仪器系统。
基于互联网的远程实验是远程教育的一个新的发展方向。远程实验从远程计算机上进行实验操作和观察,所得到的实验结果与本地得到的完全相同,如同在实验室真实操作实验设备一样,突破了时空限制,极大地提高了实验教育的灵活性。将虚拟仪器技术和网络技术相结合,实现网络化虚拟仪器,并结合电路其他元件的远程控制,可实现基于虚拟仪器的远程实验。
1LabVIEW简介
LabVIEW(laboratoryvirtualinstrumentengineeringworkbench)是美国NI公司推出的一种基于G语言(graphicslanguage)的虚拟仪器软件开发工具,具有各种功能强大的函数库,包括数据采集、网络通信、串口控制、数据显示及数据存储等。采用旋钮、开关、波形图等构造用户界面。LabVIEW提供了强大的网络通信功能,TCP/IP(transmissioncontrolprotocol/internetprotocol)协议是Internet最基本的协议。函数库的Communication子模板中提供了TCP节点,可以实现客户机/服务器模式下的双机通信。
2远程实验系统总体设计
本文开发了基于虚拟仪器的锁相放大器远程实验系统,实现了远程测量热敏电阻温度特性,远程实验系统结构框图如图1所示。
[attach]51661[/attach]
用户打开客户机,运行程序,在虚拟面板上可以设置锁相放大器的相位调节、积分时间等参数。同时,通过虚拟面板可以改变加热按钮的状态,用户在客户机的虚拟面板上点击加热按钮,接通加热电源,控制继电器闭合,加热电路开始给热敏电阻加热,该状态值通过Intern-et和服务器送往实验机。实验机将接收到的加热控制状态通过串口送入单片机,通过单片机调节继电器的状态,从而控制热敏电阻的加热状态。热敏电阻的温度由DSl8B20数字式温度传感器测得,送往单片机系统,通过串口将被测热敏电阻温度值读入到实验机中;音频输入电缆采集信号发生器输出的参考方波和桥式电路输出的电压值,经声卡模/数转换器送入实验机。实验机中的被测信号通过服务器和Internet反馈给客户机。用户通过虚拟锁相放大器和虚拟温度计进行观察和测量,得到热敏电阻温度特性曲线。
3远程实验系统的软件设计
远程实验系统采用C/S(client/server)模式,其典型运作过程为:
(1)服务器监听相应端口的输入;
(2)客户机发出一个请求;
(3)服务器接收到此请求;
(4)服务器处理此请求,并把结果返回给客户机;
(5)重复上述过程,直至完成一次会话过程。
客户机与实验机的通信利用TCP/IP协议实现。TCP协议是一个可靠的、基于连接的协议,能保证网络间的可靠传输。C/S模式要分别编写客户机和实验机程序,采用TCP协议可正确传送控制命令和数据。锁相放大器远程实验系统需要实现远程控制继电器的状态,声卡采集输入信号和参考信号,串口采集温度值,并用锁相放大器测量热敏电阻输出电压,用虚拟温度计测量热敏电阻的温度。在LabVIEW环境下分别编写客户机和实验机程序,实现测量热敏电阻温度特性曲线远程实验。
3.1客户机程序
3.1.1客户机程序的用户界面
客户机程序的用户界面如图2所示,集成了锁相放大器的全部功能以及虚拟温度计,波形图实时显示了锁相放大器工作过程中各个中间过程的波形。热敏电阻的温度值也实时显示在虚拟温度计上。
[attach]51662[/attach]
用户点击加热按钮,接通加热电源,其状态值经由网络送往实验机,从而改变实验室内测温电路的继电器状态,加热电路开始对热敏电阻进行加热。实验电路中桥式电路的输出信号和热敏电阻的温度值,经由网络反馈给客户机,用户通过虚拟仪器面板观察各个点波形的显示,同时读取温度值,完成热敏电阻温度特性测量。服务器一栏设置为实验室内服务器的IP地址,剩余时间一栏显示用户可用的时间。本实验控制真实的实验元件,每次只能有一位用户操作。规定每位用户的实验时间为30min。30min后,此客户机与实验机的连接自动断开。
3.1.2客户机软件框图程序
软件框图程序如图3所示。程序分别设置了3个While循环结构,分别完成读取温度值、读取电压值以及发送控制继电器状态的功能。循环中止的条件为下列三者之一:用户点击了“退出”按钮;用户连接时间超过了30min;实验过程中TCP连接出错,如实验机程序先行中止,或系统错误引起连接中止。
[attach]51663[/attach]
客户端程序的软件部分采用3个独立的While循环,每个端口分别设置了独立的服务器端口,依次是2322,2323和2324。
(1)读取反馈的实验数据。对于数据接收,用2个TCPRead节点读取实验机发送的声卡采集的数据长度和字符串数据。
2322端口接收串口读取的温度值,因为温度值采集时已经转换为4位BCD码表示的十进制数,因此接收时读取的字长设置为4,读取的温度值送入虚拟温度计并实时显示出来。
2323端口对应接收声卡读取的电压值,因为是左、右声道各采集一路信号,因此设置了2个Sequence结构,其中Sequence0接收左声道读取的桥式电路输出信号,送入锁相放大器的信号输入端;Sequence1接收右声道读取参考方波,送入锁相放大器的参考信号输入端。同时将读取的波形实时显示在用户界面上。
(2)发送继电器控制信号。2324端口发送加热控制电路的继电器状态值,用户可以在虚拟面板生改变加热按钮的状态,并通过服务器反馈回实验机,从而控制加热电路中继电器的状态。加热按钮其处于不同的位置时,向网络连接发送不同的命令字。将命令字放在一个CASE结构中,这样便于实现用户将加热按钮置于不同的位置时,发送不同的命令字。为有效传送数据,采用2个TCPWrite节点,第1个节点发送字符长度,第2个节点发送字符数据。
3.2端口映射
服务器平台上安装Linux操作系统。利用其IPtables防火墙技术进行端口映射,使得互联网上的计算机可以通过访问服务器,间接访问实验机,进行远程实验。端口号的选择要避开系统保留端口,即O~1023。假设实验机程序的监听端口为2322。在IPtahies中,将服务器的2322端口映射到实验机。外界计算机访问服务器的2322端口时,若实验机程序正在2322端口监听,与客户机的TCP连接就会建立,客户机与实验机通信,传送控制命令与实验数据。
3.3实验机程序
3.3.1实验机程序的用户界面
实验机程序的用户界面如图4所示。波形显示图实时监测声卡采集的信号;日志文件用于记录与实验机建立连接的客户数目、客户地址和连接时间。Inputformat设置了声卡采样的数字声音格式;数据采集为立体声格式,样本位数为16b;为了防止数据溢出,远程数据传送时A/D转换率采用11025Hz。Constant为声卡采集数据的缩小倍数。温度显示为串口采集到的热敏电阻的温度。
[attach]51664[/attach]
实验机程序实现如下功能:
实验机接收用户发送来的加热信号,通过串口送往单片机系统,由单片机根据预先设置的指令驱动继电器,从而控制热敏电阻的加热状态。热敏电阻的温度值由串口采集,送入实验机;音频输入电缆左声道采集热敏电阻阻值改变后桥式电路的输出电压,右声道采集信号发生器输出的参考方波,通过声卡送入实验机。实验机将采集到的所有信号经由服务器和Internet反馈给客户。
3.3.2实验机软件框图程序
实验机框图程序如图5所示。实验机程序的软件部分整体采用一个While循环,其l中又包含2个While循环。其中一个While循环中设置了一个顺序结构,Sequence0中包含了2322监听端口,用于监听串口读取温度值;Sequence1中包含了2323端口,用于监听声卡读取电压值。
另外一个While循环中包含了一个2324监听端口,用于接收客户机发送来的当前继电器状态值。当接收到闭合继电器控制指令时,发送“30H”到单片机,控制继电器闭合;当接收到断开继电器控制指令时;发送“31H”到单片机,控制继电器断开。单片机与实验机通过串行口通信,接收计算机发送的控制指令。
[attach]51665[/attach]
(1)实验机与单片机的串行通信。实验机与单片机的通信利用LabVIEW中的VISA库(virtua|instrumentsoftwarearchitecture)实现。V-ISA作为新一代程控仪器I/O软件规范,在接口无关性、平台独立性、可扩展性和功能上都有很大提高。本文单片机带有RS232接口,计算机通过串口与之通信。单片机通过串口与实验机相连,VISAConfigureSerialPort节点中VISAResouceName设为ASRL4:INSTR。参数与单片机的设置一致:传输速率4800b/s,起始位1位,数据位8位,停止位1位,无校验位。
(2)声卡采集电路信号。用SIRead节点读取声卡采集的电路信号,Stereo16b端口显示读取的数据。IndexArray函数分别提取0列(左声道)和1列(右声道)的信号,缩小一定倍数后,经TypeCast函数转为字符串数据:Sequence0发送音频电缆左声道采集的数据,即热敏电阻两端的电压;Sequence1发送音频电缆右声道采集的数据,即信号发生器输出的参考方波。信号波形同时显示在前面板波形显示器中显示。

0 条回复

暂无讨论,说说你的看法吧!

 回复

你需要  登录  或  注册  后参与讨论!