- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabVIEW的数控机床网络测控系统--网络通信关键技术研究 2
共享变量是LabVIEW为简化网络编程迈出的又一大步。通过共享变量,用户无需编程就可以在不同计算机之间方便的实现数据的共享。用户无需了解任何的底层复杂的网络通信,就能轻松地实现数据交换。用户建立和使用共享变量就如同操作全局变量一样方便。
通过共享变量,用户可以在不同的计算机上的VI之间、本地不同或同一个程序框图的不同循环之间交换数据。共享变量的使用与全局变量类似,用户在程序框图中不仅仅看到的是一个变量而已,而变量具体与网络中哪台计算机哪个变量连接,以及各种其他属性等都已经事先在共享变量的属性中设定了。用户不用了解网络协议,不用任何编程就能轻松实现网络数据交换。共享变量有三种类型:Single-Process、Time-Triggered和Network-Published.
举例来说明,在计算机A和B上都安装LabVIEW,将计算机A作为服务器,并创建一个共享变量命名为SVServer_Variable,由计算机A上的一个VI向该共享变量写入数据。将计算机B作为客户端,在计算机上创建一个共享变量名为SVClient_Variable,该共享变量的数据源为计算机A上的SVServer_Variable.同时在计算机B上的一个VI中不断地读取SVServer_Variable,由此不断获得计算机A上SVServer_Variable的值。
共享变量方法具体实现方式见下图4.10所示。
4.2.4远程访问技术
用户在很多情况下希望直接将本地的VI程序面板“搬”到远程计算机上,在远程计算机上进行预览或操作。而LabVIEW提供的Web服务器技术能满足用户的这个要求,用户可以不需要任何编程就能在远程计算机上通过网页或LabVIEW连接本地VI面板,本地VI前面板便会“原封不动”地呈现在远程计算机的屏幕上。
在LabVIEW中,实现远程访问的方式有两种:远程面板控制和客户端浏览器访问,且在实施这两种访问之前都需要对服务器进行配置。LabVIEW中实现远程面板的连接仅需要两个非常简单的步骤,利用浏览器访问通信实例如下:
(1)配置LabVIEW Web服务器步骤如下:
①打开本地VI前面板配置服务器包括3部分:服务器目录与日志配置、客户端可见VI配置和客户端访问权限配置。在LabVIEW中选择“工具→选项”即可打开参数配置框,左侧分别可见“Web服务器:配置”、“Web服务器:浏览器访问”。其中“Web服务器:配置”是用来配置服务器目录和日志属性、“Web服务器:可见VI”用来配置服务器根目录下可见的VI程序,也即对客户端可操作的VI程序。“Web服务器:浏览器访问”用来设置客户端的访问权限。完成服务器配置以后,即可以选择远程控制面板或浏览器方式访问服务器、对服务器进行交互远程操作等。
②选择主菜单的工具/选项/Web服务器:配置选项,选择启动Web服务器,其他值可以保持默认。如果80端口被占用,则需要制定一个空闲端口。配置界面如下:
③选择Web服务器:可见VI页面,在这里配置允许被远程连接的VI.默认*标示任何VI都可以被连接。
④选择Web服务器:浏览访问页面,在这里可以配置允许连接本机的远程主机。
默认*标示任何主机都允许连接本机。
⑤单击OK按钮,如果没有弹出任何警告,则表明Web服务器成功启动。此时已经能够在远程计算机上通过LabVIEW Run Time引擎连接当前内存中打开的任何VI的前面板了,但是若需要通过网页浏览VI前面板,则还需要进一步配置。
⑥通过客户端浏览器访问时,首先需要在服务器端发布网页,然后才能从客户端访问,以实现远程通信。选择工具/ Web发布工具选项,打开如图4.12所示对话框。 [p]
⑦在该对话框中的VI名称中选择希望在网页中进行浏览的VI,这些VI必须是已经打开了的。查看模式用3种:内嵌表示VI前面板将嵌入在网页中,用户不仅可以浏览前面板,还可以控制前面板;快照表示仅把当前VI前面板的截图发布在网页中;显示器与内嵌一样,但是它会不断地按指定时间间隔更新截图。单击下一步。
⑧在该对话框中配置网页标题、头注和尾注。单击下一步,进入第⑨步。
⑨在该对话框中配置网址。URL即远程机器浏览时的网页地址。选择保存至磁盘,将会弹出文档URL对话框,单击链接按钮就可以在本地网页浏览器中浏览该网页了。
至此便完成了服务器端得配置。
(2)在客户端通过网页或LabVIEW Run-Time引擎连接远程面板。
①通过LabVIEW Run-Time引擎连接远程VI面板客户端若需要浏览远程VI面板,必须安装于服务器端相同版本的LabVIEW Run-Time引擎。
具体实现:新建一个VI,选择操作/连接到远程面板选项,在弹出的相应的对话框中输入服务器的地址、端口和VI名称(只能是服务器端已经打开了的VI);选择是否控制;单击Connect按钮。即可弹出远程服务器的端得VI前面板。右击客户端VI前面板,选择控制VI选项便可以得到VI的控制权,需要释放控制权时,右击前面板,选择远程客户面板/释放VI控制权选项即可。
②通过网页连接远程VI面板
通过网页浏览器连接VI面板更加简单,直接在网址栏中输入配置时配置的URL地址即可,通过网页连接也存在获得控制权限的问题,获得权限与释放权限的方法同上。
在客户端通过网页浏览器访问服务器访问的页面。这样通过Web页面的发布就可实现网络的通信,且用户可与发布的前面板进行交互式操作,使用户可以通过Internet操作仪器设备。
从以上各图可以看出,利用以上四种通信方式都可以把服务器端产生的正弦信号数据,通过网络通信成功地送至客户机进行显示。如果要实现界面的互操作,需采用远程访问方式,但需要注意的是使用此种方式进行网络通信时,产生的结果数据是保存在服务器端而不是客户端,如果客户端需要得到数据,还需使用网络通信协议、DataSocket或共享变量传送数据。利用网络通信协议把数据从一个网络或Internet计算机传输到另外一台计算机或网络上是实现远程测控系统通信的最基本方式。但基于DataSocket技术的网络通信可以达到很高的数据传输效率,实时性能相当好,同时安全性能也可达到要求,这是网络协议通信所不具有的,但缺点是由于访问权限等的限制,客户端的控制功能太弱,需待改进。同时通过共享变量实现网络数据的传输也是一种值得提倡的方法,它传输速率高,低延迟还可以通过DataSocket函数读写共享变量,应用灵活。
鉴于以上几种方法的比较,本文选用的是最后一种方式,这种方式省去了上位机的程序设计,在加上该系统属于适用节段,远程用户不必操作和管理现场,只是查看现场数据采集运行情况。
4.3 LabVIEW连接远程数据库的技术研究
在虚拟仪器测控系统中,LabVIEW与远程数据库的连接方法有如下几种:
4.3.1利用ADO技术访问数据库
本方法利用LabVIEW的ActiveX功能,调用Microsoft ADO对象,利用SQL语言实现数据库的访问。
ADO(ActiveX Data Objects)是Microsoft为OLE DB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。ADO接口编程模型中包括连接(Connection)、命令(Command)、参数(Parameter)、记录集(Recordset)、字段(Field)、错误(Error)、属性(Property)、集合(Collection)、事件(Event)等元素。其中Connection、Command、Recordset是三个主体对象,Parameters、Fields、Errors、Properties是四个集合对象。
ADO的一般操作方式为:①连接到数据源;②指定访问数据源的命令;③执行命令;④将命令执行后产生的结果保存在缓存中;⑤更新数据库。ADO的主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。
LabVIEW中对ADO的调用方法如下。
ADO对象在LabVIEW中是以ActiveX对象的形式提供的。LabVIEW自4.1版本就引入了支持ActiveX自动控制的功能模块,支持客户和服务器双方,即虽然程序是在双方各自独立存在,但它们的信息是共享的。这种信息共享是通过客户端使用由服务器端发布的ActiveX控件来实现的。 [p]
图4.13展示的是LabVIEW中使用ActiveX控件的程序流程。ActiveX对象的打开和关闭是通过打开自动化节点(Automation Open)和关闭自动化节点(Close Reference)来实现的,属性的设置和获取则通过属性节点(Property Node)进行,而调用节点(Invoke Node)用于对象方法的调用。其中关键的是第二步,只有充分的利用“属性”和“方法”的设置才能成功地实现对数据库的访问。
①建立ADO对象
在前面板控件模板的Refnum子模板中选择Automation Refnum项,把它拖放到前面板上,在其右键菜单中选择Select ActiveX Class>>Broswer…,弹出Select ActiveX Object对话框,在类型库Type Library下拉列表中选择Microsoft ActiveX Data Objects 2.7 Library Version 2.7,在下面的对象Objects列表栏中出现这个库对LabVIEW可用的对象,选中Connection对象,点击OK按钮即可。同样的方法建立Command、Recordset对象。
②连接到数据源
在程序框图功能模板中选择CommuNIcation>>ActiveX子模板,选其中Automation Open与ADODB._Connection相连即可打开Connection对象。接着从ActiveX子模板中选择Invoke Node并与Automation Open相连,在其上单击右键选择Methods >>Open,即出现图4.13中所示的节点。其中“ConnectionSring”是连接到数据源的字符串,“UserID”和“PassWord”是连接到数据源的用户名密码,正确设置这些参数后便可连接到数据源。
③生成SQL命令、执行命令
与上一步相同,用Invoke Node调用Connection对象的Execute方法执行所要的操作。Execute方法所必需的参数为CommandText,这里为所要执行的SQL语句。例如可以使用Create命令创建表,用Drop命令删除表,用Insert命令向表中插入数据,用Select命令进行查询并返回操作结果等。本例使用Create命令创建了一个名为Staff的表,包括编号、姓名和年龄三个字段,其中id字段为主键,自动编号。对数据表的删除和添加数据的操作过程与建表过程类似。如果要对执行后的记录进行显示或读取字段值则需要建立Recordset对象,并与Execute相连。
④关闭连接
对数据库访问操作完毕后要及时关闭连接对象以释放内存和所用的系统资源。首先使用Connection对象的Close方法关闭数据库连接,然后使用Close Reference关闭ActiveX自动化参数号,剪标的程序框图如图4.14所示。
4.3.2利用LabSQL访问数据库
通过第三方开发的免费工具包LabSQL访问。LabSQL利用Microsoft ADO以及SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQL VIs,简单易用。
LabSQL利用Microsoft ADO对象和SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQL VIs,简单易用。LabSQL VIs按照功能可以分为四类:Command VIs,Connection VIs,Recordset VIs和Top Level VIs. Command VIs的功能是完成一系列的基本ADO操作,例如,创建或删除一个Command,对数据库的某一个参数进行读或写等。
Connection VIs的功能是管理LabVIEW与数据库之间的连接。
Recordset VIs用于对数据库中的记录进行各种操作,例如,创建或删除一条记录,对记录中的某一个条目进行读或写等。
Top Level VIs属于顶层的LabSQL应用,对前三类LabSQL VIs某些功能的封装,例如,SQL Execute.vi可用于直接执行命令。
4.3.3利用LabVIEW SQL Toolkit访问数据库
利用NI公司的附加工具包中的数据库接口工具包LabVIEW SQL Toolkit进行数据库访问。该工具包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。它的优点是易于理解,操作简单,用户可以不学习SQL语法。缺点是需要另外购买且价格昂贵,无疑会增加系统成本。
LabVIEW SQL Toolkit (又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。其主要的功能如下:
(1)支持ADO所支持的所有的数据库引擎;
(2)支持所有与ODBC或OLE DB兼容的数据库驱动程序;
(3)具有高度的可移植性,在任何情况下,用户通过改变DB Tools Open Connection VI的输入参数Connection String就可以更换数据库;
(4)可以将数据库中Column Values的数据类型转换为标准LabVIEW Database Connectivity Toolset的数据类型,这进一步增强了它的可移植性;
(5)与SQL兼容;
(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;
(7)用户可以完全不需要学习SQL语法。
用户可以使用LabVIEW SQL Toolkit在LabVIEW中支持ODBC的本地或远程数据库,例如Microsoft Access,Microsoft SQL Sever,Sybase SQL Server以及Oracle等。
上一篇:基于LabVIEW的数控机床网络测控系统--基于B/S模式的软件设计
1
下一篇:基于LabVIEW的数控机床网络测控系统--网络通信关键技术研究
1