LabWindows/CVI集成开发环境下虚拟汽车仪表盘的设计
2010-06-01陈淑敏郭献崇
陈淑敏,郭献崇
(张家口职业技术学院信息工程系,河北张家口 075051)
虚拟仪器面板的设计主要是利用控件的属性以及用户界面函数库(User Interface Library)中提供的函数,设计符合需求的仪器面板。通过这些控件属性和函数的调用,可以非常容易地把采集或仿真的波形进行处理后,显示在Panel的Graph控件或其他控件中。同时,通过这些函数可编辑与改变某个控件的属性值。
在LabWindows/CVI集成开发环境中设计虚拟汽车仪表盘的步骤如下:
1 明确设计目的和要求实现的功能
(1)通过模-数转换实现传感器和微处理机接口。
(2)指示每小时公里数、行驶的里程、耗油量。
(3)显示发动机转速。
(4)如果车速超过一个限定值(限定值可调节),则发出警报。
(5)油量低于某一限定值(限定值可调节),则发出报警。
当仪器运行时,通过函数产生数据流,运行结果在仪器面板上显示。
当关闭仪器时,选择“关闭”按钮将结束操作,关闭仪器,并退出该程序。
2 实现原理
虚拟汽车仪表盘用户界面:
3 设计步骤
具体的虚拟仪器设计包括如下三个步骤。
(1)创建用户界面
创建用户界面的实质就是生成*.uir文件。包括建立仪器面板(panel),在面板中加入控件,修改仪器面板(panel)和控件属性,保存*.uir文件等过程。
(2)程序源代码的设计
完成完整的C语言程序源代码设计包括形成源代码和框架,添加程序代码,保存程序代码等过程,最终形成*.c文件。
(3)形成工程文件并运行
将*.uir、*.c以及*.h文件合成在一起形成工程文件(*.prj)。包括形成工程文件,保存工程文件及运行工程文件等过程。
4 创建用户界面
创建用户界面包括创建控件和修改控件属性两个过程。当LabWindows/CVI启动后,选择File-New,将出现空白工程窗口。
(1)创建控件
本设计包括钮类控件、定时器控件、显示控件、Numeric控件、指示灯控件等。每个控件有名称等属性。创建控件就是在仪器面板(panel)上添加控件的过程。
首先,需要创建仪器面板。在工程窗口中,选择File-New-Userface(*.uir),创建一个用户界面(*.uir),然后打开用户界面编辑窗口。需要在用户界面编辑窗口中,选择Create-Panel建立仪器面板。
根据设计所要实现的功能在仪器面板中逐个创建控件,用鼠标把它们拖到相应的位置,建立好虚拟面板。
(2)修改用户界面中各控件元素的属性
通过上述步骤建立的控件属性还没有设置,例如圆形按钮显示的文字为系统的默认值“OK”,而要求显示的是汉字“点火”。通过控件元素属性的设置,完成所要求的用户界面。
◎修改Panel的属性
双击Untitled Panel ,弹出Edit Panel窗口。本设计中,仪器面板需要设置的属性为标题文字的设置。在“Panel Title”属性文字框中输入“汽车数字仪表面板”,这时,右边编辑窗口中的标题随之改变。设计完毕后,单击“OK”按钮,完成Panel属性的设置。
◎按钮控件属性的设置
按钮控件属性的设置包括控件回调函数、空间名称、控件标题属性的设置。双击相应按钮控件将会弹出按钮控件属性设置窗口。在“Source Code Connection”栏内的回调函数“Callback Function”一栏中输入相应的回调函数名称。在“Lable”一栏中输入控件按钮标题属性,完成按钮控件属性的设置。
◎显示控件Numeric Meter属性的设置
双击显示控件Numeric Meter,出现设置面板。一般情况下,需要设置的属性有:默认值的设置(在Default Value栏中输入);数据类型属性的设置(在Date Type栏中选择);标题属性的设置(在Label栏中输入相应的文字);表盘刻度属性的设置:选择“Range Values”按照要求进行选择,以改变刻度盘的刻度值。
◎定时器控件Timer属性的设置
定时器控件Timer所要设置的属性包括回调函数名称和定时间隔时间属性两部分。
控件回调函数的设置:在“Source Code Connection”栏内的回调函数“Callback Function”一栏中输入回调函数的名称。
定时间隔时间属性的设置:将“Control Settings”栏中输入数值,此数值根据需要多少时间调用一次回调函数来确定。
当上述控件属性设置完毕之后,单击“OK”按钮,完成控件属性的修改。
◎将Untitled.uir文件存盘
选择File-Save As将Untitled.uir文件另存,系统自动生成(.h)文件。
至此,用户界面文件的设计结束。
5 程序代码的设计
下面要做的是程序编写工作。由于LabWindows/CVI可自动生成程序代码框架及默认的处理函数,只添加一些必须的代码即可完成程序的设计编写。
(1)产生程序源代码框架
(2)添加程序代码
(3)保存编辑好的C文件
6 保存工程文件并运行
(1)保存工程文件
选择Edit-Add-Files To Project依次将*.uir、*.c以及*.h文件加入,完毕后再选择File-Save将工程文件(*.prj)保存。
(2)运行工程文件
选择Run-Run Proj]ect来运行工程文件。
7 部分程序如下
(1)接口程序
double sensor (void)
{ char RecieveData[9];
char SendData[4];
OpenComConfig (1, "", 9600, 0, 8, 1, 512, 512);
SendData[0]='#';
SendData[1]='0';
SendData[2]='1';
SendData[3]=' ';
ComWrt (1, SendData, 4);
ComRd (1, RecieveData, 9);
data=(RecieveData[2]-RecieveData[2])*100+(RecieveData[3]-RecieveData[2])*10+(RecieveData[4]-RecieveData[2])+(RecieveData[6]-RecieveData[2])*0.1;
return data;
}
(2)*.h文件C语言说明部分程序
/*******************************************/
/* LabWindows/CVI User Interface Resource (UIR) Include File
*/
/* Copyright (c) National Instruments 2004. All Rights Reserved.
*/
/*
*/
/* WARNING: Do not add to, delete from, or otherwise modify the contents
*/
/* of this include file.
*/
/*******************************************/
#include
#ifdef __cplusplus
extern "C" {
#endif
/* Panels and Controls: */
#define PANEL 1 /∗ callback function: PanelCallback ∗/ #define PANEL_SHISU 2 #define PANEL_LICHENG 3 #define PANEL_YOULIANG 4 #define PANEL_LED_chaosu 5 #define PANEL_LED_meiyou 6 #define PANEL_CLOSE 7 /∗ callback function: Close ∗/ #define PANEL_DIANHUO 8 /∗ callback function: Dianhuo ∗/ #define PANEL_TOGGLEBUTTON_3 9 /∗ callback function: Togglebutton_3 ∗/ #define PANEL_TOGGLEBUTTON_2 10 /∗ callback function: Togglebutton_2 ∗/ #define PANEL_TOGGLEBUTTON_1 11 /∗ callback function: Togglebutton_1 ∗/ #define PANEL_YOUXIAN 12 #define PANEL_XIANSU 13 #define PANEL_F_ZHUANSU 14 #define PANEL_TIMER_1 15 /∗ callback function: Timer_1 ∗/ #define PANEL_TIMER_2 16 /∗ callback function: Timer_2 ∗/ #define PANEL_TIMER_3 17 /∗ callback function: Timer_3 ∗/ #define PANEL_TIMER_dianhuo 18 /∗ callback function: Timer_dianhuo ∗/ #define PANEL_TIMER 19 /∗ callback function: TimerCallback ∗/ 。。。。。。。。。。。
参考文献:
[1]刘君华.基于LabWindows/CVI的虚拟仪器设计[M]. 电子工业出版社,2003.
[2]雷振山.LabVIEW 7 Express实用技术教程[M]. 机械工业出版社,2004.
[3]马法成.LabVIEW入门培训教材. 天津中德职业技术学院,2001.
[4]张毅刚 等.虚拟仪器软件开发环境[M]. 机械工业出版社,2002.