基于Python 和Qt 的车载乘客信息系统设备状态检测平台
2024-01-11龚建生许丽金
龚建生,许丽金
(武汉地铁运营有限公司,湖北武汉 430030)
0 引言
随着我国轨道交通事业的不断发展[1],地铁能够提供的安全体系越来越完善,给乘客提供的娱乐享受越来越全面,极大地提高了轨道交通服务质量,同时也给车载通信技术带来了新的挑战。列车乘客信息系统[2]主要由语音广播系统、闭路电视监控(CCTV)、视频信息显示(PIS)等子系统构成。列车乘客信息系统依靠多媒体和互联网技术,以嵌入式设备为轴心进行工作[3],由多种设备协调工作,具有复杂的网络结构。同时,考虑车内布局、乘客舒适性、设备美观等因素,设备采用嵌入式安装,设备接口隐蔽,安全性高[4]。但是设备种类数量繁杂、网络结构复杂、现场环境复杂,会导致运维困难、设备检测效率低下,同时检测维护过程中会影响服务质量等问题。
本文通过对多硬件设备、多网段层次的列车乘客信息系统进行研究,开发了一种设备状态检测平台,该检测平台使用多线程网络编程等技术,采用Python 和Qt 编程语言,实现与设备进行通信,以达到对列车乘客信息系统中各种设备状态检测维护。该检测平台为设备维护检测工作提供了极大的便利,减轻了维护人员的劳动强度,提高了工作效率。
1 列车乘客信息系统架构
列车乘客信息系统主要为乘客服务,设备安装在地铁列车中,一列车通常分几节车厢编组,在一套系统中,包括几十个板卡和设备。考虑到车内布局、设备接口安全、设备美观舒适等要求,通常设备采用嵌入式安装,如摄像机嵌入列车顶棚、显示器嵌入车体、其他网络设备嵌入车厢设备柜内等,同时这些设备的网络接口一般安装隐蔽,不方便维护。
以武汉轨道交通7 号线为例,列车乘客信息系统主要由车载无线设备(含车载无线单元、车载POE 及车载通信控制器)、车载局域网、车载CCTV 主机、车载PIS 主机、车载广播主机、车载摄像头及车载显示屏组成(图1)。
图1 列车乘客信息系统系统结构
同时为了提高设备安全性,减小网络风暴对设备的影响[7],保证数据安全、可靠、实时地在网络设备之间进行传输,列车乘客信息系统将同一物理局域网内的不同子系统逻辑地划分成不同的广播域,构成多个虚拟局域网络(VLAN)。其中,车载无线设备通过以太网线接入车载局域网中,完成车载子系统无线资源管理和调度。车载PIS、CCTV 和广播系统通过车载局域网与车载无线系统相连进行业务数据传输。列车乘客信息系统各设备分属于多个局域网的不同VLAN 内,跨VLAN 无法互通,传统方法每次对设备进行维护时,需要接入不同VLAN 的端口对相应设备进行检测。
2 Python 和Qt 开发系统
2.1 Python
Python 由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计[5],作为一门称为ABC 语言的替代品,Python 提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 语言诞生至今,已被逐渐广泛应用于系统管理任务的处理和Web 编程。
2.2 Qt
Qt 是一个由Qt Company 于1991 年开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI 程序[6],也可用于开发非GUI 程序。Qt 是面向对象的框架,使用特殊的代码生成扩展以及一些宏,Qt 很容易扩展,并且允许真正地组件编程。
3 系统总体方案
因为列车乘客信息系统各设备分属于不同VLAN,如果需要检测设备状态,就必须逐一检测或接入到不同VLAN 中进行检测。如果能用一个检测平台通过网络跨VLAN 将这些工作完成,会减轻现场维护工作量,提高维护效率,方便系统分析故障。
3.1 系统架构
根据武汉地铁列车乘客信息系统的维护需求,设计一个城市轨道交通列车乘客信息系统设备状态检测平台。该平台系统架构如图2 所示。
图2 平台系统架构
3.2 检测平台的实现过程
平台基于Windows 系统,采用Python 语言作为基本结构框架,通过ICMP(因特网报文控制)协议与列车乘客信息系统各设备进行数据通信。检测平台采用多线程编程技术,可同时向多个设备发送ICMP 请求报文,极大提高了测试效率。根据本检测平台的设计思想,包含设备网络地址存储模块、跨VLAN 互通模块、设备检测模块、设备状态显示模块、检测信息显示模块、时间显示模块及日志存储模块等。
(1)设备网络地址模块:该模块主要实现不同车次号列车乘客信息系统设备网络地址(IP)的存储、修改及配置。通过该模块,可设置对应车次号的相关设备的网络地址(IP),并且可以非常方便地修改。
(2)跨VLAN 互通模块:因为列车乘客信息系统各设备分属于不同VLAN 中,不同VLAN 间的设备不互通。该模块主要通过Telnet 协议远程登录车载局域网中的交换机写入配置文件设置VLAN 互通,从而实现只需接入交换机某一端口,便可ping通所有隶属于不同VLAN 中的设备。
(3)设备检测模块:采用多线程编程技术,当维护人员选择车次号并点击开始检测后,从设备网络地址模块中读取设备网络地址,并同时向多个设备发送ICMP 请求报文,待报文回复后,读取回复报文中的设备IP、设备丢包率及设备平均时延并保存。
(4)检测信息显示模块:将设备检测模块获取的设备IP、设备丢包率及设备平均时延显示在软件界面下部文本框中。
(5)设备状态显示模块:通过设备IP、设备丢包率及设备平均时延等信息,自动与软件设置的阈值进行比对,计算出设备的状态为正常、丢包或故障,同时将设备的状态显示在软件下部设备状态区域。其中显示绿色表示设备正常;显示红色表示设备故障,需要排查设备故障点;显示黄色表示设备丢包,需要排查设备网络链路。
(6)时间显示模块:可显示当前的时间。
(7)日志存储模块:将检测时间、ICMP 请求报文、ICMP 回复报文等数据保存在运行日志中,便于出现异常时维护人员进行分析。
首先登陆主界面,然后用户可在主界面选择车次号并点击开始测试,平台将自动读取保存在配置文件中该列车的列车乘客信息系统设备的网络地址,并向车载局域网中的交换机写入配置文件设置VLAN 互通。设置完成后,以多线程形式同时向多设备发送ICMP 请求报文。待报文回复后,读取报文中的设备IP、设备丢包率及设备平均时延并显示在软件界面中,并根据设备IP、设备丢包率及设备平均时延等信息,判断设备的状态为正常、丢包或故障,并显示在软件界面中。同时将当前的时间、发送的ICMP 报文及报文回复写入至运行日志中并存储。该平台通过向设备发送因特网报文控制协议请求报文,测试设备是否可达,从而及时了解其状态,能实现对设备IP、设备丢包率、设备平均时延等数据的采集、记录和显示,并根据采集的结果,分析设备的状态(正常、丢包或故障)。系统的设计流程如图3 所示。
图3 设计流程
3.3 检测平台界面的实现
检测平台界面设计基于Qt 开发,首先打开本检测平台便可看到列车乘客信息系统设备状态检测的相关信息界面,该界面实现了当前时间的显示,并且有车次号的选择、检测信息的显示、设备状态的显示等功能。平台界面设置了开始检测按钮,点击该按钮,开始自动检测当前设备(图4)。
图4 设备状态检测平台界面
界面上面显示了名称及当前时间;中间下拉框内是所有车次号,选择好要测试的车次号后,点击右边开始测试按钮可自动开始测试;下面左边是一个文本框,显示的内容为检测信息,包含设备名称、设备IP、设备丢包率及设备平均时延,右边的色块显示的为设备状态,其中显示绿色表示设备正常;显示红色表示设备故障,需要进一步排查设备故障点;显示黄色表示设备丢包,需要进一步排查设备网络链路。
4 检测平台实现效果
检测平台设计完成后,选择列车车次号,点击开始测试,等待约2 min 测试完毕后,界面便可显示设备状态检测情况。通过对比传统设备检测方法与该平台检测方法(表1)可以发现,维护一列车的乘客信息系统设备,采用传统检测方法进行检测作业时间需要约40 min,使用本平台检测仅需2 min,极大提高检测效率。
表1 传统设备检测方法与检测平台检测方法对比
该检测平台能将列车乘客信息系统中所有设备通过网络联系到一起,通过软件与设备进行通信,对设备进行维护检测,发现故障情况。通过对比分析,本文开发的列车乘客信息系统设备状态检测平台,能够快速获取系统中设备的故障情况,避免频繁的在列车上拆卸设备和电缆连接设备端口进行检测,方便维护人员操作。同时能够获取系统中全部设备的状态,利于系统的分析问题,解决问题,使得整个系统的维护体系更加完善。
5 结束语
本文开发的城市轨道交通列车乘客信息系统设备状态检测平台,能够通过TCP/IP 网络实现对多设备、多网段内的设备进行检测,避免传统方式检修时间过长的问题,同时不必频繁地接入设备端口,提高了设备的安全性和可靠性[8]。经过严格、系统的测试,该检测平台性能稳定可靠,目前已应用于武汉地铁列车乘客信息系统设备状态检测。该平台可以作为地铁通信工培训教学使用,可以使员工深入了解列车乘客信息系统的知识和设备检测操作流程,有广泛的应用前景,值得推广普及。