申宇燕,延九磊,张瑞芳,戴 津
(中国铁道科学研究院 机车车辆研究所,北京100081)
基于QT的6A系统软件可靠性研究与检测设备开发
申宇燕,延九磊,张瑞芳,戴 津
(中国铁道科学研究院 机车车辆研究所,北京100081)
通过对机车车载安全防护系统(6A系统)车载软件可靠性需求的分析,构建了6A系统软件可靠性架构。结合QT图形用户界面IDE实现了ARM嵌入式检测设备的开发,从而实现了6A系统软件检测的人机交互,为6A系统软件可靠性提高与维护提供了便携式检测平台。
6A系统;软件可靠性;检测设备
机车车载安全防护系统(简称6A系统:ABDR:Air Brake safety monitoring and Data Record system,制动监测子系统;AFDR:Fire Alarm and Data Record system,防火监测子系统;AGDR:Anti-Ground Detection system for Resistance of high voltage equipment,高压绝缘检测子系统;APDR:Appliances train Power Diagnosis and Record system,列车供电监测子系统;ATDR:Advanced Truck Defect diagnosis and Record system,走行部监测子系统;AVDR:Automatic Video Display and Record system,视频监控子系统。)是针对机车的制动系统、防火、高压绝缘、列车供电(以下简称列供)、走行部、视频等危及运行安全的重要事项、重点部件和部位,在前期已有的各独立机车安全设备的基础上,完善功能、综合集成,形成完整的系统性、平台化的安全防护装置,用于提高机车防范安全事故的能力。
6A系统的组成与功能[1]如图1所示:
图1 6A系统组成与功能图
6A系统产品设计与以往机车上安装的独立监测设备有本质不同,6A系统将每个监测子系统所需要的供电、存储、显示、报警等功能集成在一起,子系统共享中央处理平台,进行信息流的交换,因此对6A系统的软件可靠性提出了更高的要求。
系统软件可靠性设计的实质是在常规的软件设计中,应用各种必须的方法和技术,使程序设计在兼顾用户各种需求的同时,全面满足软件的可靠性要求。如果软件在使用中发生失效(不可靠)会导致任务的失败,甚至导致灾难性的后果。因此,应在软件设计过程中,对可能发生的失效进行分析,采取必要的措施避免将可能失效的缺陷引入软件,为失效纠正措施的制定提供依据,同时为避免类似问题的发生提供借鉴。特别是嵌入式软件的可靠性问题关系到设备安全甚至于人员生命,其软件可靠性问题是需要融入系统设计之初统筹考虑的,6A系统的车载软件就是如此。因而软件可靠性设计工作将会大大提高使用中软件的可靠性,减少由于软件失效带来的各种损失。
6A系统中对机车的故障诊断采用多级诊断、逐级上报的方式实现。6大监测子系统中,每个监测子系统负责诊断本系统的机车设备故障,并将诊断结果上报至中央处理平台,主机进行子系统之间的关联诊断并将结果发送至音频、视频(简称:音视频)显示终端,终端通过界面显示和语音提示报告给司乘人员,同时记录到日志文件中。故障诊断流程如图2所示。
根据对6A系统整个故障诊断流程分析,日志文件需要记录如下内容,可以涵盖软件运行的整个过程,并可有效定位系统失效发生点,以便及时修正。6A系统软件可靠性的架构设计如下:
如图3结构图所示,在该架构设计中,系统可靠性及状态记录包括从系统上电加载、进程启动、运行、信息相互交换及异常处理等各个方面。状态监控与过程记录融合到软件实现的全流程之中,因而各子系统与中央处理平台的数据交互,中央处理平台工作状态完全在系统状态监控下进行,记录结果见表1。
图2 6A系统故障诊断流程图
图3 6A系统软件可靠性框架结构图
表1 6 A系统部分运行状态记录
车载设备可靠性记录的数据源可实现6A系统的综合维护,包括机车配置信息维护、6A系统配置信息维护、6A系统软件可靠性运行记录分析与整理。
开发相应的嵌入式设备是实现上述信息人机交互的有效方式。目前基于ARM的嵌入式设备由于具备低功耗、数据安全、便携式等优良特性使得完成上述功能成为可能。基于ARM平台的图形界面GUI系统开发,将6A系统软件可靠性的维护通过装车过程的信息配置、运用过程状态数据的下载分析、图形化显示6A系统的软/硬件运行状态来实现。
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立图形用户界面所需的所有功能。Qt Creator是支持Qt的跨平台集成开发环境。它包括高级C++代码编辑器;集成的图形用户界面外观和板式设计器Qt Desinger;项目和生成管理工具;图形化调试器等[2]。
Qt-Embedded是Qt的嵌入式版本,它在原Qt的基础上做了许多调查以适合嵌入式环境成为Linux 4大主流GUI系统之一。Qt/Embedded是一个多平台的C++图形用户界面的应用程序框架,具有易扩展、可移植性好等特点,支持多个GUI平台的交互开发,广泛地应用于个人消费电子、工业控制设备等嵌入式产品和设备中。
在6A软件检测设备的开发过程中,程序开发步骤为:
(1)在linux系统下利用Qt Creator和Qt Desinger设计整个程序,并完成与6A主机的连接功能测试。
(2)然后在PC机的Linux下搭建交叉编译环境,配置环境变量。
(3)在交叉编译环境下编译源程序,生成能在ARM开发板上运行的可执行文件,等待移植到开发板上。
(4)在ARM开发板上搭建好程序运行的Qt-Embedded环境,包括程序运行所需的Qt-Embedded库等。
(5)串口连接PC机和ARM开发板,将可执行文件下载到开发板上,实现程序从PC机到ARM板的移植。
4.1 功能与通信原理
6A系统便携式检测设备功能模块主要有:软件检测、修改车号、统计信息、下载数据,时间校准,见图4。
本项目中采用UDP传输协议来实现检测设备与6A主机的通信。UDP主要用于基于网络节点间离散信息包的传输,与TCP传输协议相比,它有轻量级、面向数据报文,传输速度快,系统开销小的特点,所以在有些对数据安全性要求不是很高的情况下,如检测设备与主机是短距离相连,网络稳定的环境下,采用UDP协议是一个不错的选择。
基于UDP协议的网络应用程序,实现起来比较简单,并且基于UDP协议的网络应用程序在运行时,受到环境影响较小,所以不容易出错。
图4 检测设备显示屏
一般地一个UDP数据包的大小被设定为小于512字节的信息,同时IP地址与端口号被包含在发送端与接收端的数据中。如图5所示检测软件的发送数据代码函数中带有3个参数,分别为发送数据包,发送目的地IP地址和发送目的地端口号。
将功能窗口绑定预设的IP和端口号,准备接收6A主机发送的数据文件。如图6所示。
图5 UDP发送数据文件代码
图6 UDP接收数据文件代码
4.2 功能实现
(1)建立连接
便携式检测设备通过网线与6A主机相连后,首先要建立与6A主机的连接。如图7所示。
图7 检测设备连接主机界面
不同的车型与CPU的组合对应不同的IP。
选择车型(6轴机车、8轴A机车、8轴B机车)和CPU(CPU1、CPU2),点击“建立连接”,发送连接请求报文给主机,主机经过校验同意连接并发送动态密码给检测设备。检测设备此时显示“连接成功”。此后对6A主机的任何操作都需要发送密码校验才能成功。
(2)软件检测
在6A主机的日志记录文件中,见图8所示,已详细记录了6A系统各组成部分、各子系统工作时的状态参数。当其中某一个功能模块发生故障或异常时,日志文件都会有明确体现。通过筛查日志故障记录可以确认6A系统软件是否工作正常,并及时修正。
(3)修改车号
通过点击“修改车号”,在车号设置界面使用触摸屏点击方式,输入车号编码,发送给6A主机,主机确认后车号设置成功。
(4)数据下载
通过点击“数据下载”,在下载数据界面选择所需下载数据的起始日期和结束日期,将6A主机数据下载到检测设备的CF卡中,检测设备软件监测界面见图9。
(5)统计信息
检测设备可通过对报警数据的统计分析,给出各个子系统发送报文统计:图10中黑色为接收报文数、灰色为错误报文数、白色为不连续帧数。
图8 6A主机日志文件
图9 检测设备软件监测界面
机车车载安全防护系统(6A系统)从概念设计到全路推广运用历时短短3年,在设计之初,软件可靠性设计和功能设计的有机融合是取得这些成绩的重要因素之一。模块化的设计使得任何一个子系统可以全国范围内统筹开发,软件可靠性为系统集成提供了坚实的平台基础。
U269.32+2
A
10.3969/j.issn.1008-7842.2014.03.23
1008-7842(2014)03-0094-03
9—)女,助理研究员(
2014-01-07)