中国自动化学会专家咨询工作委员会指定宣传媒体
新闻详情
isee-

控制系统网络实验室关键技术的研究

http://www.gkong.com 2011-06-28 23:38 来源:中国自动化学会专家咨询工作委员会

   摘要:为了推进实验教学改革,充分利用有限的实验设备,设计了一种基于Labwindows/CVI平台的控制系统网络实验室。在介绍网络实验室的框架结构和主要功能的基础上,详细阐述了三种关键技术。

  引言

  高校实验室承担着专业教学及实验的主体工作。而大多数高校的资源有限,学生实验教学只能分批、分时地进行,导致学生的理论知识学习与实验能力培养难以同步。建立网络实验室,可以不受时间和空间的限制,它是对传统实验室的补充;同时,它也将成为未来实验教学的重要途径,具有重要的现实意义。

  Labwindows/CVl是美国NI公司开发的面向计算机测控领域的软件开发平台,它采用直观图形用户界面设计,利用函数面板输入函数的参数,并采用事件驱动方式和回调函数方式的编程技术,提高了工程设计的效率和可靠性。因此,本课题组开发了基于LabWindows/CVI的控制系统网络实验室,设计了直流电机转速、温度控制等实验。

  一、系统架构设计

  本系统采用C/S模式(并非传统意义的“胖客户端/瘦服务器”) ,针对高校实验室的特点设计了一种服务器(实验服务器)与客户端一一对应为了推进实验教学改革,充分利用有限的实验设备,设计了一种基于Labwindows/CVI平台的控制系统网络实验室。在介绍网络实验室的框架结构和主要功能的基础上,详细阐述了三种关键技术,即Labwindows/CVI与Matlab的软接口技术、TCP/IP与DataSocket相结合的混合通信技术以及利用Microsoft Access与SQL Toolkit建立网络实验室的数据库管理系统的技术。实验结果表明,三种技术构建了结构较为完整、技术较为先进的控制系统网络实验室,实现了网络实验室的高效、可靠和实时运行。的实验系统。系统由客户端、实验服务器和总服务器三部分构成,其结构框图如图l所示。

  图l中:数字l为Datasocket技术,数字2为TCP/IP技术。

  客户端(学生宿舍)在终端安装客户端软件即虚拟实验平台的操作界面,学生就可通过该界面和Internet网络远程登陆到实验服务器(学校的计算机控制实验设备)进行仿真和实物实验,并可与服务器(包括实验服务器)进行师生对话、文件传输等。实验服务器主要负责接收客户端实验参数,进行实物或仿真实验,向客户端反馈实验结果等活动。总服务器除了能完成实验服务器的所有功能外,还可进行实验数据库管理、实验分配、确定客户端与实验服务器对应的IP登陆地址等功能。

  要实现以上功能,基于Labwindows/CVI技术的控制系统网络实验室需要实现以下几个关键技术。

  二、关键技术的研究

  2.1Labwindows/CVI与Matlab的软接口

  网络仿真实验是本系统的一个重要组成部分。Labwindows/CVI是一个优秀的虚拟仪器开发平台,但无法直接实现现代控制和信号处理的先进理论算法。Matlab是一款优秀的数学应用软件,拥有丰富的工程计算函数库和接口,可以方便地集成到其他编程语言中,但其界面开发能力较差,硬件控制和数据输入比较繁琐。

  鉴于CVI与Matlab各自的优缺点,在开发过程中充分利用二者优势:用CVI设计用户图形界面、负责数据采集和网络通信;在后台利用Matlab进行大型算法,提供数据供CVI调用,实现混合编程。

  由于实验者要将仿真参数传送给Matlab,由Matlab进行系统仿真,并将输出返回给实验者,因此,实现Lahwindows/CVI和Matlab结合的关键是其数据和命令的交换,即软接口技术。Labwindows/CVI与Matlab的软接口是为了能在Labwindows/CVI环境下调用Matlab的功能函数,运行Matlab环境下的程序,实现CVI环境下的混合编程。为方便开发者实现CVI环境中与Matlab的混合编程,NI公司专门配置了一个接口函数文件。该文件在Samples/Active/Matlab目录下,文件名为Matlabutil。

  以Labwindows/CV16.0环境为例,其接口的初始化方法步骤如下。

  ①在CVI工程文件窗口中,运行Tool→Create ActiveX→Automation Control,运行后将出现ActiveX的服务控件选择框。

  ②在选择框选择Matlab Automation Server Type Library,出现一个函数对话框;在对话框中选中所有动态链接目标函数,然后生成并保存文件,文件名为Matlabsrvr;最后系统将生成Matlabsrvr.fp(函数面板文件)、Matlabsrvr.c和Matlabsrvr.h等相关五个文件。其中,在Matlabsrvr.c中包含混合编程所需的最基本功能函数。这些函数有接收发送矩阵函数、打开关闭Matlab函数等。

  ③最后将上述五个文件添加到工程文件中,并将它们和应用程序文件一并编译。生成的文件被包含在CVI环境下,实现了同Matlab混合编程所要用到的最基本的功能函数。但考虑到环境变量,Matlab要求在CVI之前安装为宜。

  电机转速仿真实验时的仿真波形界面如图2所示。

  2.2TCP/IP和Datasocket的混合通信

  Labwindows/CVI具有强大的网络通信功能,用户可以用CVI编译具有较强网络通信能力的应用软件。 Nl公司在CVI支持TCP/IP协议的同时,开发了Datasocket技术。Datasocket是Nl公司基于Microsoft的ActiveX和COM技术开发的一种面向网络进行实时数据高速交换的新技术,它简化了网络通信编程。针对网络控制系统通信复杂性的需求,本课题创新性地将TCP/IP和Datasocket两种网络技术相互结翻综合运用,提供了一种基于CVI平台的虚拟实验朔络通信的实现方案。

  客户端和服务器进行师生对话、文件传输(递交与接收实验报告)、实验参数的传输等网络通信都是依靠TCP/IP传输协议,通过Labwindows/CVI的TC/lP库函数编程,将数据以数组的形式进行传输。但TCP/IP传输协议是较为复杂的底层编程,数据量较大,传输速率较慢,在传输动态数据方面较难实现。为了实现数据的实时传输,如客户端和服务器之间触验数据(包括实验参数、实验结果等),我们应用了面向网络化测试进行实时数据高速交换的编程技术-Datasocket技术,其专门用于传输和共享的化测试的实时数据。

  Labwindows/CVI中引入了TCP/IP技术,并封装了TCP类库,提高了网络应用程序的开发能力。在网络虚拟实验室中,使用TCP进行网络通信时,每个连接必须包括一个服务器和一个客户。利用TCP库函数进行网络传输的实质是实现TCP服务器端与客户端应用程序之间数据的发送和接收,并通过TCP回调函数,对传输双方通信发生的不同事件做出不同响应,使应用程序可以接收并处理TCP事件。

  教师在服务器端接收学生实验报告利用的就是TCP/IP技术,服务器接收文件的流程如图3所示。

  Datasocket由Datasocket API(应用程序接口)和Datasocket Serve:(服务器)两部分组成。Datasocket API提供了从多种语言访问多种数据类型的单一接口泡括四个基本动作:open、read、write、close。采用Datasoclet Server发布数据需要具备三个部分:发布者、服务器和接收者。发布者和接收者都是客户端,发布者用于发布数据,接收者用于接收数据。

  以直流电机转速实验为例,其工作过程如下:客户端把Kp、Ki、Kd等参数通过Datasocket API写入Datasocket Server,服务器程序通过Datasocket API读Datas0Clet Server,并通过串口和单片机控制直流电机运行,然后将转速、误差等数据写入Datasocket Server, 客户端应用程序从Datasocket Server读取最后的实验结果。由于软件系统利用Datasocket机制实现通信,因此,程序的源代码中必须包含头文件“Dataskt.h”。购启动Datasocket服务器,获得URL地址并进行实时数据的传输是编写Datasocket程序的关键。

  2.3数据库的开发与应用

  在控制系统网络实验室中,数据库是不可缺少的重要组成部分。用户登录、学生的实验时间、实验参数滨验结果等数据的存储和管理都需要用统一的数据库机制来实现。

  SQL (structure query language)Toolkit是NI公司的数据库系统应用软件工具包,它支持SQL语句。CVI.5及以后的版本提供了支持数据库的SQL Tool-Lit,使CVI对数据库的操作能力增强。CVI支持对数据库的访问,不支持数据库的开发。因此,可以用其他数据库开发工具将需要的数据库开发出来,然后在Lab Windows/CVI环境下使用。

  SQL T00lkit包含了可以完成数据库任务的高级函数库集,可实现定制任务等高级功能。在CVI开发环勒使用SQL Toolkit时,需要在安装CVI之后单独安装它。

  在开发数据库应用程序时,可以像添加仪器驱动器一样把sql_db.fq加载到项目工程的仪器(instrument)菜单,而且最好也把它作为工程文件加载到工程项目管理窗口;再通过Windows控制面板中的“ODBC数据源”添加数据源。这样就可以在CVI中用sQL Toolkit函数库来开发含有数据库的应用程序。

  本课题采用Microsoft Access建立数据库,通过SQL Toolkit实现数据处理。设计中,利用TABLE控件的特点与数据库建立连接,并把相应的变量进行绑定,从而使CVI的人机界面能够操作数据库,进行数据的读写,并使数据得以保存。TABLE控件起到桥梁的作用,指导教师不需要打开数据库就可以直接操作,大大节省了实验的步骤和时间。

  通过CVI提供的SQL Toolkit工具包实现对数据管理与处理,指导教师可以在服务器端的应用软件平台上方便地操作使用数据库,完成应用程序与数据库的通信。

  本设计所需要的数据库表包含实验时间、用户姓名、学号、Kp、Ki、Kd、采样时间、误差等巧个实验测得的数据。将TABLE控件的设计与数据库相结合实现了包括属性设置、数据输入/输出等功能。TABLE控件设计的关键在于利用SetTableCellval( )函数,将生成的记录时间、姓名、学号以及一些测试数据写入相应的单元格中,其程序代码如下:

  TABLE控件中单元格的数据类型必须与变量的数据类型一致,并且填入的顺序要相符,否则,写入的数据会出错,甚至使程序无法运行。在SQL Toolkit数据库中进行数据库激活时,本课题采用了映射的方式,即首先调用DBBeginMap函数定义映射,此函数所需的唯一参数是由DBConnect 返回的连接句柄“hdbc”, 返回值即为映射句柄;映射定义完成后,必须使用 “DBMap ColumnTo”绑定函数类映射数据库中将被读入程序变量的列。所有DBMap ColumnTo函数使用下列参数:映射句柄、列名、目标、目标变量地址和状态变量地址。以下代码是数据库中的各列和程序中存放对应列值的变量,即数据绑定的操作,包括姓名、学号、Kp、Ki、Kd、采样时间等。

  三、结束语

  本文针对网络实验室的不同要求,成功地将Lab-Windows/CVI与Matlab的软接口技术,TCP/IP、Datasocket技术以及SQL Toolkit技术有机地结合在一起,建成了控制系统网络实验室。该实验室不仅能够进行仿真实验,也可进行实物实验,同时也实现了实验参数、结果的实时传输,以及与实验数据的管理。通过与传统教学方式的紧密结合,网络实验室不仅提高了教学效果,更培养了学生的实验动手能力、综合素质和创新能力。

版权所有 中华工控网 Copyright©2024 Gkong.com, All Rights Reserved