APP下载

一种基于司机显示屏故障诊断中数据库的应用

2022-07-15任富争李如石高兴华张红星

铁道机车车辆 2022年3期
关键词:字典列表显示屏

任富争,李如石,高兴华,张红星

(中车唐山机车车辆有限公司 产品研发中心,河北 唐山 063035)

列车网络控制系统采用分布式控制系统,分布于整个列车的各个智能单元连接成一个列车网络,各个不同的分布式单元将使用TCN 或ECN 总线连接起来,且符合IEC 61375 标准。列车网络控制系统的故障诊断功能是实时诊断列车运行时发生的故障并以恰当的方式显示出来,为司乘或检修人员提供故障信息及处理意见[1]。完成故障诊断功能的主要设备有列车网络主控设备(CCU)和司机显示屏(HMI)。主控设备主要负责故障信息的分析诊断,司机显示屏主要功能就是将诊断结果显示给司机和维护人员,同时提供相应的操作指导说明。传统显示屏列车故障诊断功能的实现是通过几个文本文件,分别配置故障代码、等级、发生故障的车号信息、故障发生原因以及故障处理措施,这几个文本文件之间要行号名称相互匹配才能引用,对列车故障诊断代码的配置往往需要耗费很长时间才能配置正确,即使如此,在后续对故障的修改更新后还需要重新配置。因此,文中重点阐述了基于显示屏使用数据库技术对列车故障诊断信息实时显示功能的实现。

1 故障诊断显示需求

主要通过列车显示屏提供图形和文字信息,实时显示列车运行状态和故障信息,故障部分包括故障信息的发生和消失以及发生故障时列车环境参数信息,从列车司乘人员行车便捷操作和易于维修人员排查故障的角度,显示屏对列车故障显示和处理的需求简述如下:

(1)故障等级通常分轻微故障、中等故障、严重故障。

(2)故障是否消失分为当前故障和历史故障显示。

(3)每条故障以纯文本显示,且有故障代码、故障等级、故障发生的时间等信息,并能查看相应的故障处理措施建议等信息。

(4)在查看时可以根据故障等级对故障进行筛选显示。

(5)对列车行驶安全有影响的严重故障和事件信息,实时弹出故障信息内容供列车司乘人员查看确认。

(6)轻微故障及其相关信息仅对维修人员可见。

(7)显示屏主界面上可以提示司乘人员列车存在的故障及故障等级。

2 数据库列表

在实际的项目中,故障诊断显示的数据信息可以通过数据库列表来存放,结合故障诊断显示需求内容和故障诊断程序可分别设计出故障字典列表、当前故障列表和历史故障列表。在数据库的选择上使用SQLite 数据库,选用SQLite 主要是基于其自身优势,首先它是完全免费的,数据库体积小易维护、存储量比较高、健壮性好和运行速度快,且可以在所有主流的操作系统上运行等优点[2]。

2.1 故障字典列表

编制一个故障字典列表(FaultDic)表格,根据列车故障的参数及属性,在SQLite 故障字典表格中对每条故障的信息设计包含以下字段,见表1。

表1 故障字典列表

故障字典用来描述每条故障信息属性,使用数据库表格编制故障字典的明显优势体现在对数据的变更方面。随项目的进程,后续因各方原因需要多次对故障信息的内容进行增减或更改,这是不可避免,如调试试验后需要对某些故障信息的内容进行增加、删除,或修改故障等级、处理意见等。

数据库列表的设计可减少应用软件开发者的工作量,只需要将整理好的列车故障诊断代码表另存为CSV 格式文件,直接导入到数据库列表即可,节省了传统文本方法中的反复核对文本文件行号等信息过程,且能保证其正确性;后期的维护极其方便,只需要在更新列车故障诊断代码表后将CSV 格式文件导入,不需更改应用软件程序的任何代码,维护更新时间快且准确;因数据字典的端口号、字节偏移和位偏移存在,使故障数据解析不会有错位现象而导致空白记录行的问题。

2.2 故障字典数组

二维故障字典数组是故障诊断程序初始化时将数据库字典列表的数据完整地拷来1 份用于实时访问,根据显示屏上对故障显示和程序逻辑处理的需要,对二维故障字典数组设计成员变量,见表2。

表2 二维故障字典数组

在列车故障诊断中需要实时轮询列车网络总线上的故障信息数据,为减少应用程序对数据库文件访问的频率,避免造成数据库文件不必要的损坏,二维故障字典数组(FaultDic)来替代数据库列表提供网络总线上端口轮询参数和故障相关信息,既可以加快程序轮询运行时间,又能降低因不间断访问数据库文件引起的CPU 负荷,也能保证程序可靠性。二维故障字典数组的内容在设备每次上电的程序初始化时都会跟最新的故障字典数据保持一致,相比于故障字典多了一故障标识的成员变量,用于判断故障是当前故障还是历史故障。

2.3 故障信息列表

由于界面要分别显示当前故障和历史故障信息,为数据处理方便需要设计2 个SQLite 数据库列表:当前故障列表(Cur_Fault)和历史故障列表(His_Fault)。当前故障列表设计的各字段见表3,历史故障列表设计的各字段见表4。

表3 当前故障列表

表4 历史故障列表

当前故障列表存放当前故障相关的关键信息,历史故障列表存放历史故障相关的关键信息,列表中的索引号,是用于在数据库字典数组中检索故障详情的行号,对数据列表的查询均可以使用成熟快捷的SQL 语句实现。

3 故障显示功能的实现

3.1 故障诊断的初始化

列车各显示屏在上电之后,首先执行初始化程序,如图1 所示。首先判断故障列表的故障数量,如果故障数量为0(上次断电时数据库列表损坏),则需用备份文件替换,替换后数据库当前故障列表数据会在设备上电后重新判断当前故障,统计数据库历史故障列表数据并按故障发生时间排序,然后把故障字典数据库数据逐条放入二维故障数据字典数组中。

图1 诊断初始化

3.2 故障的发生和消失

在列车上电2 min(列车各个子系统上电需要进行自诊断过程)之后,开始执行故障诊断程序,诊断程序以一定周期(200 ms)循环执行故障判断程序,循环时根据VCU 生命信号标识正常,并记录本次循环的时间。每次执行的故障判断程序均按照故障字典数组的端口配置信息在列车总线上轮询所有的故障数据位,根据故障数组中每条故障成员的cur_flag 的值和故障端口轮询的值,来判断相应该条故障是新发生还是新消失(判断流程如图2 所示),以便将故障信息更新到当前故障列表或历史故障列表中。

图2 故障判断逻辑

3.3 故障信息显示

故障信息的显示按照显示方式分为:在故障界面显示、弹出界面显示故障和故障详情(包括处理措施)的显示。在故障界面显示时根据界面输入的故障等级和页码号,使用SQL 语句在当前故障或历史故障数据列表和故障字典中查找相关故障信息显示即可;在故障诊断程序中实时地轮询当前故障列表,如查找到发生对列车行驶安全有影响的严重故障和事件信息,根据当前故障列表中的索引号查找故障字典中相关故障信息,在弹出界面显示;故障详情信息一般是在故障界面中选择所要查看的故障条目,点击后,界面会自动弹出,程序会根据故障代码在故障字典中查找相关故障信息用于显示。

3.4 故障列表文件的保护

当程序诊断到有故障发生或消失时,需要对数据库列表文件进行读写操作,此时如遇列车断电,数据库列表文件就会被损坏,造成不可修复的错误。因此,对数据库文件进行备份是必要的。在程序中单独开一个线程,其功能是每隔5 min 对数据库文件进行1 次备份,这样确保数据库列表文件损坏时有备份文件可用,使故障显示内容不致空白。

4 应用实例

使用tNetrol 系列10 寸新一代智能显示屏开发HMI 应用软件,其硬件环境包含MVB 和ETH 网络接口设计,嵌人式Linux 操作系统,通过Qt Creator开发软件使用C/C++编写故障诊断程序代码并编译为可执行程序。此屏在某高速动车组项目中,整个网络使用以太网TRDP 数据通讯,HMI 程序的故障诊断部分使用上述SQLite 数据库技术在列车司机显示屏故障诊断,开发出的故障相关界面如图3、图4 所示。

图3 高速车故障弹出界面

图4 高速车故障信息界面

同样使用tNetrol 系列12 寸新一代智能显示屏在某地铁的城轨列车项目中,整个网络使用多功能车辆总线MVB 数据通讯,HMI 程序的故障诊断部分亦使用上述SQLite 数据库技术在列车司机显示屏故障诊断,开发出的故障相关界面如图5、图6所示。

图5 城轨车故障信息界面

图6 城轨车故障弹出界面

经现车做列车调试试验和动态运行试验验证,程序运行良好,对故障信息的修改维护方便快捷,完全能满足列车运行和维修需求。

5 结 语

文中首先描述了列车网络控制系统与显示屏的通信原理,以及列车司乘人员和库内检修人员对列车显示屏的故障显示需求项点,在显示屏设计和实现列车故障诊断系统显示故障功能的过程中,对每个步骤做详细介绍,结果表明该方法对列车故障诊断结果的显示具有高效性、健壮性,并保证了显示屏故障信息显示的准确性。在今后的实践过程中,将侧重于对列车显示屏故障诊断应用程序处理方法的继续优化和扩展数据库技术的应用,以帮助司机或维护人员能更准更快地查找并解决故障。

猜你喜欢

字典列表显示屏
一块布就是一个显示屏?
扩列吧
字典的由来
2018年智能手表显示屏出货量同比增长42%
苍蝇迷恋显示屏
LG申请欧盟商标 或布局MicroLED显示屏
大头熊的字典
列表法解分式方程问题探索
正版字典
列表画树状图各有所长