仪表指针压制嵌入式控制软件设计

2013-02-20 05:37戴路廖一鹏
计算机时代 2013年2期

戴路 廖一鹏

摘 要: 汽车电子配件的生产制造逐渐由自动化步入智能化,汽车仪表指针的智能压制也成了众多汽车生产企业研究的对象。介绍了基于S3C6410的Windows CE平台的汽车仪表指针压制系统的整机工作流程、硬件结构原理、人机界面和SQLite数据库的设计开发过程。进行了整机测试,试验结果表明,本压制系统与老式压制机相比,具有良好的人机界面,操作灵活方便,且有较高的精确度和效率,完全能满足汽车配件厂的生产要求。

关键词: Windows CE; S3C6410; 指针压制; SQLite

中图分类号:TP273 文献标志码:A 文章编号:1006-8228(2013)02-01-03

Embedded control software design of instrument pointer pressure

Dai Lu, Liao Yipeng

(College of physics and information engineering, Fuzhou University, Fuzhou, Fujian 350001, China)

Abstract: With the development of automobile industry, the manufacture of electronic auto parts has developed gradually from automation to intelligence. The intelligent pressure of automobile instrument pointer has become the research object of many car manufacturers. The whole workflow, hardware structure, human-computer interface and SQLite database design process of the automobile instrument pointer pressure system based on the Windows CE platform built by S3C6410 are described in this article. The whole system test is completed. The test result shows, compared with traditional pressure machines, that the system has better human-computer interface, higher precision and efficiency, and the operation was more flexible and convenient.

Key words: Windows CE; S3C6410; intelligent pressure; SQLite

0 引言

本文介绍一种基于Windows CE平台的嵌入式仪表指针压制系统,该系统通过S3C6410处理器操作伺服电机控制压制头向下行进一定的距离,当接触到压针时通过采集压力进行压制判定。若压制头行进的距离与压制时的压力在设定范围内,则判定该次压制成功,其余都判定压制失败。若压制成功则通过标签机把当前的SN码打印出来。使用Windows CE平台能制作出人性化十足的操作界面;S3C6410的运算速度,以及自带的ADC的采集精度都远远超过了现今其他常用的指针压制机。

1 系统硬件结构介绍

工业现场常用的指针压制仪器通常只采用8位的CPU,其外部电路也相对简单:8位的A/D采集模块,实现对压力的采样;单色液晶屏幕,为用户提供操作界面;键盘输入,给用户提供操作平台;E2PROM,实现数据的存储;实时时钟,用于显示与记录时间。8位的CPU与8位的ADC,无论速度,还是采集精度都无法达到现今的技术要求,单色的液晶屏幕不能提供优质的用户体验,E2PROM无法记录大量的数据。因此需要一种先进的指针压制机。

本系统是由三星公司的S3C6410作为主控芯片,最高运算速度可达667MHz;8路12位的ADC,其最高转化率可达到500kSPS;支持高速USB2.0(全速480MBPS);4通道UART 具有基于DMA或基于中断操作;支持5位,6位,7位,或8位串行数据传输/接收。其优秀的性能和丰富的外设,完全符合系统的需求,且价格便宜[1-2]。

[标签机][伺服电机][ USB接口

UART2接口

AD采集 UART1接口 RJ45接口][S3C6410] [EXCEL导出] [Ethernet] [PC机] [128M DDR][256M FLASH][7寸触摸屏] [RS422] [压力采集]

图1 系统硬件框图

外围接口电路:UART接口(控制伺服电机、标签机)、USB2.0接口(进行数据导出)、RJ45接口(进行远程数据操作);并由通过总线连接LCD触摸屏(人机交互),芯片自带的ADC(进行压力采集)、DDR、FLASH组成。

系统与饲服电机之间的串行通信采用RS-422总线,由于RS-422是差模传输,抗干扰能力比RS-232强,理论传输距离达到1200米,且是全双工通信,更适合在复杂的工控环境中使用。

2 系统软件设计

Windows CE是一个开放的、可升级的32位嵌入式操作系统。其体积小巧,最小配置的Windows CE .NET可以小至200KB。且系统可裁剪,通过裁剪可针对系统专门定制出所需的最精简系统。Windows CE的图形用户界面相当出色,因此本设计选用Windows CE作为操作系统。采用Microsoft Visual Studio 2005开发平台,编写Windows CE下基于MFC架构的GUI界面[3]。

SQLite是D.Richard Hipp开发的一个基于C库的轻量级嵌入式关系数据库引擎,支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。且SQLite在Windows CE下无需安装,可通过API直接访问数据库,具有代码量小,免费、开源等优点,因此本设计采用SQLite数据库对数据进行存储和管理,并可导出数据方便管理者进行生产统筹[4-5]。

系统通过7寸的触摸屏进行人机交互,系统软件由用户管理、参数设置、手动模式、自动模式、记录查询、系统帮助等几个模块组成。

2.1 用户管理

在用户管理菜单下可进行用户注册、登录、删除及密码的修改。对系统进行操作时需要进行系统登录,管理员可进行员工的添加、删除及时间的设置。员工及管理员的数据存在SQLite数据库中,调用方便、迅速。

2.2 手动模式

手动模式主要是方便技术人员对压制参数进程更改,该模式下有点动、寸动两种模式,控制压制机上升与下压,技术人员可在该模式下调试好参数,之后再进入参数设置模式进行新建、修改机型参数。

2.3 参数设置

在参数设置模式下可直接新建、修改、删除机型参数,以及将已有的机型参数设置成当前手动模式或自动模式压制的参数。所有机型参数存储在SQLite数据库中,等需要时再对数据进行存取。参数设置界面如图2所示。

图2 参数设置界面

机型名称:当前机型的名称。

打印简码:当前机型的打印简码。

最大/小压力:当前机型在压制时成功的最大/小压力值。

悬空最大压力:在不接触压制物体时的最大压力(在自动模式下,压制头若还未到压针最大位移时的实时压力,大于悬空最大压力时,系统判定压力超限)。

接触最小压力:在接触到压制物体时的最小压力(在自动模式下,压制头若到了压针最大位移时的实时压力,小于接触最小压力时,系统判定压力超限)。

回归位置:当压制完成时,压制头会上升到回归位置方便操作人员取出压制物。

压针最大/小位移:当前机型在压制成功时的压针最大/小位移值。

系统密码:若要修改参数值,新建机型,删除机型时需要输入系统密码。

机型选择:系统中所有注册的机型都会出现在机型选择框中以方便选择。

2.4 自动模式

压制的自动模式是提高压制效率的手段之一,在此模式下操作人员只要将压件摆好,按动自动压制按钮就能实现自动压制。

老式的压制机在压制过程中,若操作员不正常操作则时常会出现安全事故,智能压制系统在压制过程中为了防止此类事故发生,特在下位机增加了两个按键,必须当操作人员的两只手同时按住两个按键才能进行压制,以防止发生危险(如肢体被碾压的情况)。

自动压制过程中显示屏右侧的当前压力与当前位移数据实时刷新,上次压力与上次位移则显示上次压制过程最后的压力与位移。当压制完成时,当前的压力与位移数据会显示到上次压力与位移中,同时当前压力与位移数据清零。且在曲线上画出当次的压制曲线,存入数据库中。若压制成功,则自动生成系列码,并通过标签打印机进行打印。若压制失败,则进行下一次压制。自动模式如图3所示。

图3 自动模式

压力与位移用两个C2Dgraph类[6]分开进行显示。根据现场环境,将压力坐标定为0~15KG,位移坐标定为5~12mm。根据机型的不同,压制的最大压力、最小压力,最大位移、最小位移会在曲线显示框中用绿色的虚线绘制出来。若是曲线超出了绿色的虚线范围,便代表了该次压制出错。在压制过程中每压制一个设备,都会将最后的值绘制在曲线中。当曲线绘满300个点时只将第一个点删除,在末尾添加新的点,实现的部分代码如下:

C2DGraph m_2DGraph_p,m_2DGraph_s; //二维曲线对象

if(m_pointCount > 300 ) //当曲线的点大于300时删除第一个点

{ m_2DGraph_p.DeleteFirstPoint(); //删除压力曲线的第一个点

m_2DGraph_s.DeleteFirstPoint(); //删除位移曲线的第一个点

m_pointCount--; //曲线点数减一

}

m_2DGraph_p.AppendPoint_P((DWORD)f_kg); //绘制压力曲线

m_2DGraph_s.AppendPoint((DWORD)f_mm); //绘制位移曲线

m_pointCount++; //曲线点数加一

在自动压制过程中,除了实时显示当前数据并绘制压制曲线外系统还能记录当前压制完成时的压力与位移值,存入SQLite数据库中[7]以方便数据查询、传输。

当压制成功时,数据存入数据库的代码如下:

CppSQLite3DB db;

db.open(L"\\Program Files\\PointerDB.db"); //打开数据库

db.execDML(L"insert into record values ('OK', 'OK','"+

tmp_data+L"','"+Machine_Id+L"','"+ C_tmp_mg+L"','"+

C_tmp_mm+L"','" +L"','"+tmp_sn+L"','"+tmp_time+L"','"+

User_Id+L"');");

//将成功的压制信息、压制日期、压制机型、压力、位移、生成码、压制时间、员工信息等存入数据库

db.close(); //关闭数据库

自动模式流程如图4所示。

[开始压制] [数据储存,绘制曲线] [压制是否成功?] [生成、存储,打印序列码] [N][Y] [压制直至完成]

图4 自动模式流程图

2.5 数据查询

数据查询是智能仪表压制系统里的一项重要功能,利用ClistCtrl列表控件编程,显示查询压制过程的机型、员工、日期、时间等压制相关数据。且查询可以通过条件筛选,方便管理者了解所关心的信息。

数据导出可将SQLite数据库中的压制信息转换成Excel的格式,并将转换后的数据导出到U盘,也可通过以太网将转换后的数据传到远端的计算机上,这样大大方便了管理者对生产数据的了解,方便其对生产的统筹。数据查询如图5所示。

3 系统测试

本次实验在宁波汽车厂进行,用标准电子称进行压力检测。通过表1可以看出:本压制机压力采集精度比传统压制机精度略高。

图5 数据查询

表1 压力测试结果分析

[标准电子称测量(KG)\&本压制机测试值(KG)\&测量误差/(KG)\&传统压制机(KG)\&测量误差(KG)\&2.5\&2.4\&-0.1\&2.6\&+0.1\&4\&4.1\&+0.1\&3.8\&-0.2\&6.5\&6.5\&0\&6.3\&-0.2\&8\&8\&0\&7.9\&-0.1\&10.5\&10.4\&-0.1\&10.5\&0\&12.5\&12.5\&0\&12.7\&+0.2\&14.5\&14.6\&+0.1\&14.4\&-0.1\&]

用千分尺对压制机头进行距离检测。通过表2可以看出:本压制机行进精度比传统压制机精度略高。

表2 距离测试结果分析

[千分尺测量(MM)\&本压制机测试值(MM)\&测量误差/(MM)\&传统压制机(MM)\&测量误差(MM)\&5.5\&5.6\&+0.1\&5.4\&-0.1\&6.5\&6.5\&0\&6.2\&-0.3\&7.5\&7.6\&+0.1\&7.3\&-0.2\&8.5\&8.4\&-0.1\&8.5\&0\&9.5\&9.5\&0\&9.4\&-0.1\&10.5\&10.6\&+0.1\&10.5\&0\&11.5\&11.4\&-0.1\&11.8\&+0.3\&]

4 结束语

随着经济社会的不断发展,汽车越来越普及,人们对汽车的生产工艺要求也越来越高,因此对仪表指针压制系统的要求也越来越高。老式压制机将渐渐被淘汰。本控制系统已在宁波某汽车装配厂投入使用,并取得了良好的效果,实际应用表明,该仪表压制系统大大提高了仪表压制的效率与安全性,且操作简单方便,测量数据准确,并能及时让管理者了解生产数据,方便其统筹管理。但由于时间关系有一些问题还有待进一步深入研究,如:由于各工厂生产环境不同,还应通过增加外围电路进一步提高系统的抗干扰能力,以适应不同的生产环境。

参考文献:

[1] 尹成,黄永兵,胡耀文.Windows CE开发实战详解[M].人民邮电出版社,2012.

[2] 周立功.ARM&WinCE; 实验与实践[M].北京航空航天大学出版社,2007.

[3] 王浩.Windows CE嵌入式应用开发实训教程[M].中国水利水电出版社,2010.

[4] 廖一鹏.嵌入式SQLite在温湿度巡检仪中的应用研究[J].光电技术应用,2010.5:61-64

[5] 戴昱.SQLite的SQL语句高速缓存技术[J].计算机系统应用,2012.1:183-186

[6] 汪兵.Windows CE嵌入式高级编程及其实例详解[M].中国水利水电出版社,2008.

[7] 胡伟.SQLite在嵌入式系统上的实现研究[J].计算机与数字工程,2009.2:46-47