基于LabVIEW的自助实验平台的构想与实践
2014-05-02许丽川唐凯飞梁永春白连生丛培强李逢春
许丽川,唐凯飞,梁永春,白连生,丛培强,李逢春
(电子科技大学 机械电子工程学院,四川 成都 611731)
1 概述
随着计算机技术和网络技术的迅速发展,各类信息化手段在高校实验教学中得到了广泛和多样的应用。国内各高校实验教学信息化手段主要包括:实验项目信息化、实验预约系统、实验教学辅助系统、开放式实验预习系统、演示的实验系统,虚拟实验项目以及远程实验系统等[1]。东南大学通过实验教学信息资源与管理平台建设,创建并推广了计算机TA教学模式,推进了实验教学过程的网络管理[2]。
实验项目的信息化是对传统常规实验手段的重大创新,主要表现为两种取向:数字化和虚拟化[3]。数字实验系统是由传感器、数据采集设备、计算机系统及配套软件构成,有助于实验结果的数字化和精确化测量与显示;而虚拟实验系统则是利用虚拟技术,为师生提供一个和计算机进行交互操作的环境来模拟实际的实验操作。湖南农业大学信息科学技术学院在信号与系统实验教学改革中,设计开发了虚拟实验系统,使学生可以方便地更改实验参数、设计实验步骤、创设实验情境进行“研究式”和“协作式”的学习[4];华东师范大学设计开发了“温度传感器特性的研究”虚拟实验项目,并应用于大学物理实验教学[5]。而国内常见的数字化实验系统有基于LabVIEW和声卡数据采集的中学物理实验仪器系统、江苏艾迪生数字实验室和朗威数字化实验系统等[3],其中,随着虚拟仪器技术的发展,LabVIEW在实验或实践教学中的应用也逐渐广泛和多样。
基于虚拟仪器的LabVIEW软件是一个高效的设计软件,它结合了简单易用的图形化开发环境与强大的硬件驱动、图形显示能力,高级数学分析库和便捷快速的程序设计,为过程测量控制及实验室研究和自动化应用提供了一个直接高效的设计环境。
LabVIEW集成化的环境与现实世界的信号相连,能进行数据分析,获取实用信息,极大地提高了数据采集与控制系统的效率[6-7]。洛阳工业高等专科学校火长跃等人利用虚拟仪器技术对液位实时控制系统进行了仿真设计,使系统具有软硬件开放,兼容性好等特点[8];武汉大学自动化系谢建军、薛平贞设计了一种基于NIDAQ板卡和LabVIEW软件的液位控制系统,为先进的控制算法研究和实际应用提供了非常好的实验平台[9]。
LabVIEW软件既能与NI模块化的硬件相结合,又能与各种工业处理器,例如单片机、PLC、智能调节仪等进行实时通信,因此可以应用在许多不同种类的实验项目中。LabVIEW编程既能方便地进行实验数据的处理,也能对实验信息进行存储、提取和显示。因此,基于LabVIEW设计的实验平台在实验系统信息化中有很好的扩展性。
2 基于LabVIEW的自助实验平台结构设计
自助实验平台主要包括3个模块:开始模块、实验模块和报告生成模块,其总体结构如图1所示。
图1 自助实验平台总体结构图
(1)开始模块主要包括主程序模块、登录模块和仿真实验模型。其功能包括:在实验前进行必要的初始化工作,如登录个人信息、选择端口号等;在离线条件下,可以起动仿真模型,进行仿真实验。其中,仿真模型需要根据不同的实验项目进行设计,由于程序采用模块化结构,因此可以方便地链接不同的仿真模型。
(2)实验模块主要包括实验内容模块和一些通用的功能模块。实验内容模块根据不同的实验项目进行设计,如水箱液位测量和控制实验。对于验证性实验,学生直接运行程序、观察现象、记录数据;对于综合性或设计性实验,学生可以自行设计界面、算法等内容。通用功能模块实现实验过程中的运行、暂停、数据保存、数据回放、退出等功能。
(3)报告生成模块的主要功能是从文件中选择需要的数据,完成实验报告数据和图表的填写,学生需要自行补充填写实验分析结论和实验心得体会。
图1中的“个人信息”和“全局2”是各模块之间传递信息的全局Vi。实验时产生的实验数据、实验波形及前面板图像以文件形式保存至指定文件夹,供实验结束后进行实验分析填写报告时使用。生成实验报告时可以选择性地从这些文件中读取典型数据用来填写实验数据,并分析实验结果。
为保证实验有序地进行,程序规定了各模块的调用方向和数据传送方向,如图1中箭头所示。线型箭头代表程序引用方向,只有箭头首端的程序才能引用箭头末端的数据;方框型的箭头代表了数据的传递方向,双向箭头表示数据发生了双向传递;在仿真模型和实验模块中,使用了虚线的数据箭头,表示这些数据可能发生(离线仿真演示运行)也可能不发生(在线运行)。
3 自助实验平台功能设计
3.1 主程序模块
主程序模块的前面板包括登录信息区、启动仿真模型(离线演示)、实验选择和几个说明按钮,如图2所示。主程序模块使用了一个事件结构[10]处理按键事件和超时事件,如图3所示。“按键事件”处理所有按键产生的事件,“超时事件”显示超时要处理的任务。超时要处理的任务主要有两部分:一是从全局变量获得姓名、学号、专业和指导教师的信息,通过登录Vi赋值给全局变量;二是判断这些信息是否有效,有效则显示,无效则不显示。
图2 主程序模块前面板
3.2 实验模块
实验模块是系统的核心部分,它包括不同实验项目特有的实验内容和一些通用的功能。实验模块的运行状态分为初始化、空闲、运行、保存数据、数据回放和退出,通过功能区对应的按钮进行切换,其状态转换图如图4所示。由于存在既有特定状态的转换,又要与用户进行互动,因此使用了标准状态机[11]和事件状态机结合的方法将事件和动作分离,由事件结构和CASE结构分别处理。
图3 主程序程序框图
图4 实验程序运行状态转换图
空闲程序接收来自各功能按钮的触发事件,从而实现状态之间的转换。空闲状态的程序包括一个事件结构,共处理有6个事件对应不同的状态转换。
(1)开始运行、数据保存、数据回放所触发的事件比较简单,程序跳转到相应的状态即可,如图5(a)所示。暂停运行需要使用部分功能按钮,这些功能按钮可能在运行状态时被禁用,如图5(b)所示。
(2)退出事件被触发时,系统需要判断用户是否已经对运行时产生的数据进行保存,并提醒用户保存。如果用户已经保存了数据,则会弹出确认“退出”的对话框,防止用户误操作,如图5(c)所示。
(3)点击“生成报告”将触发生成报告事件,这个事件将调用“生成实验报告.vi”这个程序,进入实验报告的撰写和生成页面。
(4)保存数据将实验数据保存,以便实现历史数据的回放,以及供实验后的数据分析使用。保存数据使用了一个层叠顺序结构和一个CASE结构。每次保存数据将生成4个文件,分别保存运行条件、数据、波形图表图像和当前运行的前面板图像。
(5)保存数据的数据源为波形图表的历史数据,使用波形图表的历史属性即可获得。保存数据分为3步:第1步先将全局变量数据保存次数自加1;第2步将需要保存的数据写入文件,并保存至用户保存数据文件夹;第3步则是弹出提示用户保存成功的消息窗口。
(6)数据回放是读取保存数据时保存的数据文件,并显示在回放波形图表。回放数据前先清空回放窗口,然后再给回放窗口赋值。这样可以防止不足一个窗口显示的数据显示在同一窗口,影响回放效果。
3.3 报告生成模块
实验报告的前面板可以根据各高校的标准模板进行设计,主要包括信息区、模板选择区、数据区和结论区几部分,各部分的顺序与标准实验报告一致。
实验报告中的学生信息、实验时间等实验信息由程序自动读取并显示,不能修改。实验项目名称会根据调用此程序的实验自动选择,但是如果程序选择有误,或者用户期望补充填写上一实验的报告,这时可以更改实验项目名称。
实验报告中的实验原理、实验目的、实验内容、实验器材和实验步骤由于属于预习内容,在教师安排实验教学时已经确定,因此可以由教师提前写入模板,也可以在生成报告之后由学生补充填写。
图5 空闲状态事件结构
实验数据是实验中最关键的部分,因此程序主要集中于这部分数据的导入和排版。程序默认条件下至少需要导入1组数据,否则不能生成报告,最多可以导入4组数据。
实验报告生成程序由一个while循环和循环外的一个顺序结构组成。while循环配合用户选择需要填入报告的实验数据和实验图表。顺序结构负责把数据图表以及其他实验报告信息填写至实验报告中。
while循环主要负责处理前面板里的用户操作,采用标准状态机的设计思想,由一个事件结构和一个CASE结构组成,状态流程转换如图6所示。数据状态的转换主要由添加删除按钮触发相关的事件结构实现。
图6 添加数据状态转换
报告填写完毕后,点击确定按钮将结束while循环,开始顺序结构创建实验报告。创建实验报告主要包括以下3步。
第1步:获取数据相关路径。在前面板上,用户选择条件路径后,系统读取条件文件夹中的数据,并显示在路径下方的显示窗口,用户可以根据显示内容判断是否为需要填写至实验报告的数据。获取相关路径程序的任务便是把被选择的数据的路径获取出来并存入数组。获取数据路径的程序如图7所示。
图7 获取数据路径程序
第2步:读取数据。读取数据指的是读取数据数组中的路径元素所指向的数据文件中的数据,并抽样存储于数值数组中。读取数据程序如图8所示。
第3步:程序填写实验报告。填写实验报告需要较长的时间,采用进度条显示完成进度。填写实验报告程序如图9所示。首先根据单选控件选择要使用的实验报告模板(模板已经预先存入实验报告模板文件夹),利用模板新建文档;然后,使用自定义Vi填写学号姓名等个人信息,以及实验室名称和实验项目名称;之后创建表格并填表和插入波形图片;最后写入结果分析、实验结论等后续部分。报告的末尾还插入了程序运行时的前面板图像。
图8 读取数据
图9 填写实验报告程序
程序的最后是以“当前时间 实验项目名称-姓名-学号”命名的Word文档,并根据登录时选择的保存路径保存实验报告。
4 自助实验平台在水箱液位测控实验中的应用
4.1 水箱液位测控实验系统结构
水箱液位测控实验系统结构如图10所示。Lab-VIEW实验平台通过智能调节仪采集液位变送器的信号,经过PID调节后,控制电动调节阀的开度,从而控制水位高低。在实验过程中,所有的手阀都打开。
图10 水箱液位测控实验系统结构
4.2 利用自助实验平台进行液位控制的实验步骤
第1步,双击基于“labVIEW的水箱液位测控实验系统main.vi”启动主程序,点击登录,填写个人信息并保存;然后选择通信端口,若是离线运行,还需要打开液位仿真模型,使用虚拟串口技术模拟设备与上位机发送信息。
第2步,设置完成后,点击“实验二:水箱液位自动控制实验”进入实验程序。点击相关功能键可运行相应的功能。用户可在运行前修改PID的参数,也可以在运行时进行修改。
第3步,选择好通信端口号(默认为COM1),点击“运行”,系统进入运行状态。液位变送器、流量计和电动调节阀会显示出当前值,波形图表将显示期望液位、实际液位和电动调节阀的变化曲线。液位控制系统是一个滞后系统,液位的调整需要一段时间,用户可以观察液位的变化,并在记事本中记录相关的变化趋势,以及实验时得到的一些结论。运行状态下,“通信端口”、“数据回放”和“生成报告”按钮呈灰色被禁用状态。
在运行时点击“暂停运行”,数据采集和控制被暂停,“通信端口”、“数据回放”和“生成报告”按钮被重新启用,点击“运行”可以再次进入对液位的采集和控制。
第4步,实验时点击“保存数据”按钮,程序将保存运行所产生的数据,并弹出提示框说明数据保存位置。
图11是系统运行在PID参数为Kc=8.3,Ti=1.08,Td=0.002时的前面板显示。
图11 液位测控实验产生的液位变化曲线
第5步,实验结束后点击“生成报告”可进入实验报告的填写程序。选择相关的数据和图表,以及完成实验报告其余项的填写,点击“确定”,可以看到一个进度条,进度条结束后弹出文件保存对话框,此时可以修改保存路径,选择完成后生成报告页面自动关闭,实验报告被打开并最大化。用户可对实验报告进行二次编辑,或直接关闭。
5 结论
基于LabVIEW的自助实验平台应用到水箱液位测控实验系统中,完成了整个实验过程,现场载入测量数据,生成电子档的实验报告。
实验过程中所涉及的控制策略和参数的整定,都属于用户的实验内容部分,在程序没有被运行的情况下,从文件夹打开这些程序,就可以修改源代码,比如修改控制策略为其他的控制函数。完成修改并保存后,通过主程序调用即可以试验新策略的控制效果。因此,对于不同的实验,可以有不同的实验内容设计,使得平台具有一定的通用性。
在以后的系统完善中,可以增强程序的二次开发功能,使用LabVIEW的动态调用函数,实现不修改程序框图而直接通过文件对话框的方式载入自己的模型或控制策略。
如今,基于LabVIEW的工程教育在国内日趋成熟,越来越多的人开始接触和使用LabVIEW进行工程开发。作为基于LabVIEW的一个开放的实验平台,可以借鉴更多的前人经验,不断完善,以更加适应现代实验教学信息化的需要。
(
)
[1]余建波,杨西强,王媛,等.高校实验教学信息化的建设与探索[J].实验室研究与探索,2010,29(10):150-152.
[2]戴玉蓉,熊宏齐.适应开放式创新性实验教学的信息化建设与管理[J].实验技术与管理,2008,25(10):15-16.
[3]熊大红,高志强,李坤.高校实验教学信息化研究[J].湖南农业大学学报:社会科学版,2008,9(2):89.
[4]张洪洋.实验教学信息化发展的两种取向[J].中国教育信息化,2009(4):47.
[5]朱敏.虚拟实验与教学应用研究[D].上海:华东师范大学,2006.
[6]刘琨.基于虚拟仪器的光纤传感数据采集与处理系统[D].天津:天津大学,2006.
[7]沈岚.基于LabVIEW的光纤应变数据采集与处理系统的设计[D].邯郸:河北工程大学,2010.
[8]火长跃,付春仙.用LabVIEW实现液位的实时控制[J].洛阳工业高等专科学校学报,2003(4):27-28.
[9]谢建军,薛平贞.基于NI labVIEW 和DAQ卡的液位控制系统[J].仪器仪表学报,2008,25(4):889-891.
[10]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.
[11]阮奇桢.我和LabVIEW:一个NI工程师的十年编程经验[M].北京:北京航空航天大学出版社,2009.