APP下载

基于Linux Qt的无损信号检测仪人机界面软件的设计与实现

2014-08-02闫保中孟庆丹邹银红

化工自动化及仪表 2014年2期
关键词:人机界面检测仪应用程序

闫保中 孟庆丹 邹银红

(哈尔滨工程大学自动化学院,哈尔滨 150001)

随着信息技术的发展以及现代探测技术的不断进步,带有平板显示器的智能终端逐步取代了传统的仪表方式,这对于工作人员处理大量的信息提供了极大的便利[1~3]。基于上述原因,笔者提出了一种无损信号检测仪人机界面的设计方案,该方案采用ARM11处理器作为硬件平台,以嵌入式Linux系统为软件平台,在此基础上采用开源的图形界面库Qt开发上层应用程序并把应用程序中所需要的库文件进行了移植,最后对设计完成的仪器进行了调试,根据调试结果给出问题相应的解决方案。该人机界面在可移植性、可维护性和成本方面都得到了良好的改善。

1 系统方案设计①

1.1 操作系统的选择

Linux操作系统完全沿袭了Unix系统的架构,因此它具有成熟稳定的特点,在网络通信方面的效率和功能都很突出[4]。Linux是开源的操作系统,系统的设计者可以对嵌入式Linux进行二次开发,只保留必须的操作系统功能即可,并可以根据实际应用的需要优化操作系统的代码。此外,Linux还有出色的速度性能[5]。信号检测仪可使用的硬件资源相对较少并且要求上电时间短,综合上述因素操作系统选择嵌入式Linux。

1.2 硬件平台ARM的优势

与X86架构的处理器硬件平台相比,ARM级别的处理器具有低功耗优势,且在硬件资源(处理器性能及存储容量等)方面,ARM架构的硬件平台有时更加满足系统的需要,因此选择主处理器为S5PV210的ARM11架构作为检测仪人机界面开发的硬件平台[6]。

1.3 图形库Qt

Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括基于Frame-Buffer的 Qtopia Core快速开发工具Qt Designer及国际化工具Qt Linguist等。Qt支持所有的Unix系统,当然也包括Linux系统,还支持WinNT、Win2k、Windows 95/98平台。Qt基本上同X-Window上的Motif OpenwinGTK等图形界面库和Windows平台上的MFC OWLVCL ATL是同类型的[7]。笔者结合探测仪实际的运行环境、嵌入式Linux系统及嵌入式GUI等,实现了适合探测仪的人机界面(HMI)特定波形显示。

2 系统开发环境的搭建及整体结构

2.1 开发环境的搭建

硬件平台选择arm11-tiny210,10寸液晶显示屏,操作系统选择为Linux,版本为Fedora 9,其内核为Linux-kernel 2. 6.25-14。为了便于应用程序的开发,根据用户的需求描述和硬件系统本身的条件,笔者采用VMware WorkStation7.0虚拟机和Fedora 9操作系统作为开发环境[8]。

VMware WorkStation7.0虚拟机和Fedora 9操作系统安装在上位机上[9],然后在此环境中安装交叉编译工具linux-gcc-arm-4.5.1-v6-vtf以完成Qt库的驱动和应用程序的编译[10]。编译安装 Qt/Embedded库,用来支持人机交互界面程序的开发。在Fedora 9系统中安装Qt Creator集成开发环境,用于完成检测仪HMI应用程序的开发,加载硬件平台相关驱动。开发的应用程序经过交叉编译生成可执行文件后,利用网络传输NFS传到ARM板中,在ARM板中运行可执行文件。

2.2 系统的整体结构

系统的总体设计框架如图1所示,主要由中央处理电路、显示和扩展电路3部分组成。中央处理电路部分包括电源模块、信号预处理模块和Arm11模块,这几个模块封装在一个小的箱体内。显示部分主要是一个10寸的LCD信号显示屏,操作者可以很方便地通过显示屏进行人机交流。所有的接线口都装在扩展电路板上,探头采集的信号通过一根电缆输入信号线接口,扩展板上还有鼠标、键盘和USB接口,现场采集的数据存入系统后,可通过这些接口实现数据交换,便于以后分析。电源既能给采集系统提供低压直流电,又能通过充电接口充电。所有模块之间的连接线都在内部,现场使用时,只需要通过一根信号线与检测探头连接起来即可。

图1 检测系统的总体设计框架

3 无损信号检测仪软件的设计

检测仪的软件采用的是多级界面, 主界面是整个人机界面的中心,主要功能是各参数的设置,通信连接,特定波形的实时显示,查询已检测管子的数量以及合格数量与不合格的数量。大多数界面可以直接跳转到主界面。主界面下是主要子系统界面, 通过这些界面可以查看各子界面的状态,历史查询界面可以通过相应的文件索引查找所需要的历史数据,还可以通过维护界面设置系统时间并查看各子系统的软件版本等信息。

3.1 软件整体框图以及图形界面显示流程

应用程序采用模块化设计,主要包括无线传输模块、信号采集模块、波形显示模块、SD卡存储模块和数据打印模块。系统软件整体框图如图2所示。

图2 检测系统软件整体设计框图

3.2 界面绘制的实现

3.2.1图形显示的设计

特征波形显示界面模块包括A/D采集、波形显示和数据保存3个部分(图3)。

图3 波形显示界面

点击界面中的启动按键开始A/D采集,当采集结束后两组波形就显示在两个坐标框内,同时波形数据将保存至SD卡中新创建的文件中。波形显示模块流程如图4所示。

波形显示部分采用Qt的基础类 QPainter开发,QPainter具有丰富的图形图像绘制函数,并支持像素混合渐变填充反走样及线性变换等特性,利用这些函数完成相应的波形显示(图5),其部分程序代码如下:

QPainter painter(this);

painter.fillRect(0,0,w,h,QColor(0,0,0) );

painter.translate(5*dx,6*dy);

painter.setPen(QPen(Qt::red, 2));

….

QPointF curve[num];

for(int j=0;j

{

curve[j].setX(j*dx/10);

curve[j].setY(m_list2.at(j)*-5*dy/3.3+50);

}

painter.drawPolyline(curve,num);

图4 波形显示模块程序流程

图5 A/D采集数据的波形显示

3.2.2文件系统的设计

文件系统的设计代码如下:

QString strDate = QDate::currentDate().toString("yyyyMMdd");//用当前的时间创建一个文件夹

QString date1=strDate;

int hour= QTime::currentTime().hour();//以当前小时创建一个文件夹

QString hour1= QString("%1").arg(hour);

QString path=QString("/sdcard/%1/%2/").arg(date1).arg(hour1);

3.3 系统测试与结果分析

在实地调试过程中,将整个系统安装完成后,通过传感器进行数据采集,将采集到的数据通过无线通信传送至HMI界面,测试软件部分是否存在Bug,如存在则进行改进。经过多次反复的改进后,整个系统运行正常并且准确率很高,系统实际工作后波形结果如图6所示。

图6 HMI实际运行波形

4 结束语

结合实际项目,设计了一种基于Linux Qt的无损信号探测仪软件的方案,从硬件和软件的选型、平台搭建及详细设计等方面进行了阐述,并且着重描述了软件系统图形显示模块的设计过程、工作流程和系统测试过程。以性能优异的ARM平台和稳定性良好的Linux操作系统为基础,利用功能强大的开源图形库Qt 进行系统开发设计,最终实现了信号探测仪的软件系统设计。通过现场实际应用,证明该系统完全符合要求,并且具有较高的实时性、可靠性和稳定性。

猜你喜欢

人机界面检测仪应用程序
删除Win10中自带的应用程序
一种防雷接地装置的便携式检测仪电路
谷歌禁止加密货币应用程序
基于555振荡器的地沟油频率检测仪
多功能空气质量远程检测仪
CBTC系统车载人机界面的设计与实现
基于PLC与人机界面的经编机电子横移控制系统研究
巧用故障检测仪中的Reset功能
CTCS-3级列控车载人机界面的系统设计与实现
达人机界面DOP-B10VS511