>
摘要:提出了基于W/B构架的仪器WEB测控的概念一一把VI架构在Web/Brower(W/B) 软件应用模型上,应用ActiveX技术在Web页内嵌入仪器操作指令,相关的测控实现则在Web服务器上完成,通过DataSocket实现数据的网络传输。本文将结合HP33120A、HP54501A的使用,提供软件实现的技术要点。
关键词:虚拟仪器;W/B;GPIB;VISA;LabWindows/CVI;ActiveX;DataSocket
一、概述:
随着Internet网的飞速发展,基于Internet的Web技术越来越得到广泛的应用,新的软件应用模型Web/Browser(简称W/B)应行而生。W/B与C/S的理念相反,奉行的是“瘦客户/胖服务器” 的概念,主要的应用程序安装在服务器上,数据存储和处理都在服务器上完成,客户端可在浏览器环境下,在Web页上向服务器发出指令,服务器启动相应的进程响应指令,处理后的数据经网络返回Web页显示。W/B网络充分发挥了服务器的性能,减少了服务器与远程客户端间的数据传输量,并且也便于软件的维护与更新。
Virtual Instrumentation(简称VI)体系,集成了仪器硬件和计算机软硬件技术。仪器硬件实现数据的采集和对现场设备的控制,计算机软硬件完成数据的处理并模拟仪器面板。
结合W/B和VI的先进技术,组建基于W/B构架的仪器WEB的测控系统,将使测控更加灵活,效率更加高效,真正实现测控方式的网络化。
二、仪器WEB测控的主要软件技术
1、 ActiveX:
Web与Windows技术结合产生了ActiveX技术。ActiveX构架于Microsoft的组件对象模型(COM),OLE技术和API技术之上,由Microsoft公司定义并发布的一种开放性标准。ActiveX控件能与Web客户端无缝地连接,使用现有众多的ActiveX控件能快速、方便地在Internet、Intranet网络环境里编写功能强大的基于网络的应用程序,并能在Microsoft的Internet Explorer中直接执行,这使得IE浏览器环境不仅仅具有浏览Web的功能,而且也可以作为其它应用数据的宿主。
2、 DataSocket:
DataSocket是National Instrument(简称NI)推出的一种数据传输协议,完全符合OPC规范。DataSocket Server用类似于常见的URL模型来定位网络环境下的数据源,可以方便的从多种数据源读取数据和在多个计算机间传输大量的数据。例如可以用从HTTP服务器、FTP服务器、DataSocket传输协议(DataSocket Transfer Protocol---DSTP)服务器等读取数据或把数据写入文件。DataSocket API提供了一致的高层通讯函数,降低了编写低层DDE 或TCP/IP网络应用程序的复杂性,在很大程度上减少了软件开发的工作量。
三、仪器WEB测控的软件模型
软件模型图见图一。出于安全方面的考虑,为避免通过网络对服务器和客户端直接进行写的操作,在服务器和客户端均安装了DataSocket Server程序,写的操作在本机完成,通过网络只进行读取的操作。客户端安装的DataSocket Server负责接受客户端Web上的请求指令,通过网络读取服务器上的返回数据。服务器端安装的DataSocket Server通过网络读取客户端的请求指令,接受服务器上与指令相应的进程处理后的数据。
图一 软件模型图
在VB6编译环境下结合LabWindows/CVI、NI VISA库函数、DataSocket API编写ActiveX控件,经Ms Visual Stdio6 Tools中的Package & Deployment Wizard打包成cab、htm文件,形成Client VI。为演示方便,服务器端的数据处理程序也做成ActiveX控件,嵌在服务器上运行的Web页内,形成Server VI。服务器与仪器的通信通过服务器上安插的GPIB-VXI/C卡经连接的GPIB数据线实现。
四、实验平台配置
1、服务器:Windows 2000 server、DataSocket Server
服务器上配置IIS信息发布平台,安插GPIB-VXI/C接口控制卡。
2、客户机:安装DataSocket Server,可连接上网。
3、测控仪器:可编程信号发生器HP33120A一台,数字存储示波器HP54501A一台,IEEE-488(GPIB)数据线两根。
4、软件开发平台:LabView6.1、Measurement Studio 6.0、Visual Studio 6.0、和NI VISA库。以上给出的是推荐的配置,实际开发工作中,可能并不全部需要,可以有所取舍。Measurement Studio 6.0中集成了DataSocket Server。NI公司的Measurement Studio软件把数据采集、数据分析、可视化控件、IVI驱动、VISA库函数等集成进LabWindows/CVI、VB和VC++软件开发工具中,为软件人员快速开发虚拟仪器,提供了极大的便利。
开发软件安装步骤:1)首先必须安装Visual Studio 6.0,安装VS Server Pack 3升级包或更高版本;2)升级LabView 到6.02版本;3)安装Measurement Studio 6.0。
五、软件技术的实现
1、 以VB6编写服务器端ActiveX控件
由于在安装Measurement Studio6.0后,VB的new project中自动生成了NI Instrumentation
ActiveX Control,可选此新类直接进入编程环境。另外也可选new project中的ActiveX Control进入编程环境,再在ToolBox面板上单击右键选components,在其Control菜单下选中NI CW Analysis6.0、NI CW UI6.0、NI CW VISA6.0三项即可。
软面板设计:1)在用户界面模板上放置四个TextBox,用于编辑DataSocket数据通道,放置四个Label,用于显示数据通道状态;2)放置四个CWDataSocket控件,用于数据通道的控制;3)放置两个CWGraph,用于显示时域数据图形和频谱图形;4)放置一个CWDSP控件,用于生成频谱数据;5)放置两个CWVisa控件,用于和HP33120A、HP54501A通信;6)放置两个CommandButton,用于数据通道与DataSocket Server的连接和断开。整个面板如图二所示。控件主要源代码见下。
图二 Server VI面板图
服务器端ActiveX控件源代码
Dim ReadfromClientVI '获取ClientVI面板上控制HP33120A指令的权值
Dim CaptureWaveformOrder '获取ClientVI面板上控制HP54501A指令的权值
Private Sub ConnectSource_Click() '数据通道的连接
CWDataSocket1.ConnectTo Text1.Text, cwdsReadAutoUpdate
CWDataSocket2.ConnectTo Text2.Text, cwdsWriteAutoUpdate
CWDataSocket3.ConnectTo Text3.Text, cwdsWriteAutoUpdate
CWDataSocket4.ConnectTo Text4.Text, cwdsReadAutoUpdate
CWVisa1.RsrcName = "GPIB0::10::INSTR" 'CWVisa1控件对应HP33120A
CWVisa1.Open
CWVisa2.RsrcName = "GPIB0::3::INSTR" 'CWVisa1控件对应HP54501A
CWVisa2.Open
End Sub
Private Sub CWDataSocket1_OnDataUpdated(ByVal Data As CWDSLib.CWData)
ReadfromClientVI = CWDataSocket1.Data.Value '经33120A数据通道读入控制命令的相应权值
GenerateWaveform33120 '触发33120A产生相应的信号
End Sub
Private Sub CWDataSocket4_OnDataUpdated(ByVal Data As CWDSLib.CWData)
CaptureWaveformOrder = CWDataSocket4.Data.Value '经54501A数据通道读入控制命令的相应权值
Capture54501WaveformData '获取54501A上的图形
End Sub
Sub GenerateWaveform33120()
Select Case ReadfromClientVI
Case 10 '数据权值为10则产生SIN信号
CWVisa1.Write "FUNC:SHAP SIN"
Case 20 '数据权值为10则产生SQU信号
CWVisa1.Write "FUNC:SHAP SQU"
Case 30 '数据权值为10则产生TRI信号
CWVisa1.Write "FUNC:SHAP TRI"
End Select
CWVisa2.Close
CWVisa2.Open
CWVisa2.Write "*rst" 'ResertHP54501A
CWVisa2.Write "Autoscale" '自动获取HP33120A的图形数据
End Sub
Sub Capture54501WaveformData()
Const Pts = 1000
Dim WaveData
Dim SpectrumData
Dim dt As Variant
Dim df As Variant
If CaptureWaveformOrder = 100 Then
CWVisa2.RdWrt.DataAsString = False '设置数据类型为Byte array
CWVisa2.Write "waveform:format comp" '设置数据为8 bits
CWVisa2.Write "waveform:data?" '质询图形数据
WaveData = CWVisa2.Read(1000) '读图形数据
CWGraph1.PlotY WaveData '服务器端显示时域图形
CWDataSocket2.Data = WaveData '时域图形数据送入DataSocket2通道
dt = 1 / Pts
CWDSP1.AutoPowerSpectrum WaveData, dt, SpectrumData, df '生成频谱数据
CWDataSocket3.Data = SpectrumData '频域图形数据送入DataSocket3通道
CWGraph2.PlotY SpectrumData, 0, df '服务器端显示频域图形
End If
End Sub
2、客户端的ActiveX控件
面板设计过程同设计服务器端面板一样,在这儿简略,整个面板图如图三所示控件源程序主要代码如下:
客户端的ActiveX控件主要源代码
Private Sub CWDataSocket2_OnDataUpdated(ByVal Data As CWDSLib.CWData)
CWGraph1.PlotY Data.Value '客户端显示时域数据图形
End Sub
图三 Client VI 面板图
Private Sub CWDataSocket3_OnDataUpdated(ByVal Data As CWDSLib.CWData)
CWGraph2.PlotY Data.Value '客户端显示频域数据图形
End Sub
Private Sub Capture54501Data_Click()
CWDataSocket4.ConnectTo Text4.Text, cwdsWriteAutoUpdate
CWDataSocket4.Data.Value = 100 '设置读取HP54501A数据的命令按钮权值为100
End Sub
Private Sub Call33120SIN_Click()
CWDataSocket1.Disconnect
CWDataSocket1.ConnectTo Text1.Text, cwdsWriteAutoUpdate
CWDataSocket1.Data.Value = 10 '设置HP33120A产生SIN函数的命令按钮权值为10
End Sub
3、 编译上述程序生成ocx、vbp文件,再用Ms Visual Stdio6 Tools中的Package &
Deployment Wizard将其打包生成cab、htm文件,形成Server VI和Client VI的WEB面板。
六、软件发布
手动设置仪器HP33120A、HP54501A的GPIB地址为10和3。
Server Station端:IP地址为10.10.9.151。设置IIS的WEB站点主目录路径为Client VI所在目录,默认文档为Client VI。运行Server VI,设置各数据通道的正确路径,运行DataSocket Server,点击Connect建立数据传输通道的链接.
Remote station端:IP地址为10.10.9.153。通过网络链接Server Station主页,获取Client VI,设置各数据通道正确路径。运行DataSocket Server,点击Connect建立数据传输通道的链接。在Client VI的WEB面板上点击各命令按钮,即可远程对HP33120A、HP54501A进行操作。
七、结束语