首页> 中国专利> 一种列车网络控制系统软件开发方法

一种列车网络控制系统软件开发方法

摘要

本发明涉及一种列车网络控制系统软件开发方法。根据一些实施例提供一种目标机代码开发方法,其包括:进行逻辑编程,获得应用功能程序;定义应用功能程序的变量与驱动程序的变量之间的关联关系;以及利用应用功能程序的变量与驱动程序的变量之间的关联关系,根据应用功能程序生成目标机代码。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-29

    专利权的转移 IPC(主分类):G06F9/44 登记生效日:20191112 变更前: 变更后: 变更前: 变更后: 申请日:20150114

    专利申请权、专利权的转移

  • 2019-11-29

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F9/44 变更前: 变更后: 变更前: 变更后: 申请日:20150114

    专利权人的姓名或者名称、地址的变更

  • 2018-02-16

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20150114

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

技术领域

本发明涉及一种轨道车辆领域,特别地涉及一种列车网络控制系统软件开发方法。

背景技术

列车网络控制系统是一个大型、复杂、高度集成化的系统。因此,采用统一的平台对系统软件进行开发对列车网络控制系统进行高效集成是重要的。虽然现有技术中存在西门子的SIBAS G平台、庞巴迪的MITRAC平台等开发平台;但是,这些开发平台都是封闭的,仅能应用于其所针对的西门子的系统或庞巴迪系统。因此,本领域中迫切需要一种应用更为广泛的列车网络控制系统软件代码的集成开发方法。

发明内容

针对以上技术问题,本申请提出了一种目标机代码开发方法,其包括:进行逻辑编程,获得应用功能程序;定义应用功能程序的变量与驱动程序的变量之间的关联关系;以及利用应用功能程序的变量与驱动程序的变量之间的关联关系,根据应用功能程序生成目标机代码。

如上所述的方法,其中应用功能程序包括基础进程和一个或多个功能进程,其中基础进程用于调度和/或监控一个或多个功能进程。

如上所述的方法,进一步包括根据通信网卡驱动子部分和硬件驱动子部分生成通信网卡驱动程序代码和专用硬件驱动程序代码。

如上所述的方法,进一步包括根据通信网卡驱动子部分生成动态链接库,根据硬件驱动子部分生成专用硬件驱动程序代码。

如上所述的方法,进一步包括根据变量配置部分生成变量关联管理代码,所述变量关联管理代码定义应用功能程序与驱动程序之间的变量映射、端口映射和/或消息数据的交互。

如上所述的方法,进一步包括针对一个或多个目标机的多个应用功能程序进行集成。

如上所述的方法,进一步包括:对于MVB过程数据通信的代码,按如下方式生成:在应用功能程序调用MVB网卡的驱动动态链接库,并生成一个MVB网卡驱动线程;根据应用功能程序变量与MVB过程数据之间的关联信息,建立一块共享内存,完成应用功能程序相关变量与MVB网卡驱动间的变量内存映射;并且应用功能进程和MVB网卡驱动线程根据不同的过程数据端口配置,周期的更新及读取其与共享内存间接口的变量。

如上所述的方法,进一步包括:对于MVB消息数据的代码,按如下方式生成:应用功能程序调用MVB网卡的驱动动态链接库并生成一个MVB网卡驱动进程;根据应用功能程序变量与MVB消息数据之间的关联信息,在应用功能程序和MVB网卡驱动进程间建立接收消息队列和发送消息队列;实时更新或读取消息队列中的消息。

如上所述的方法,进一步包括:对于目标机专用硬件,按如下方式生成:根据应用功能程序变量与专用硬件数据关联信息,在应用功能程序和目标机专用硬件的驱动进程间建立一块共享内存,完成应用功能程序相关变量与目标机专用硬件的驱动进程间的变量内存映射;都根据不同的硬件端口和寄存器配置,周期的更新及读取其与共享内存间接口的变量。

如上所述7的方法,进一步包括:应用功能程序实时检测其配置的变量周期是否已到,若已经到达,则从共享内存中读取相关地址的数值并对所映射变量进行更新,同时向共享内存相关地址写入需要更新的变量的数值;以及与此同时或之前后或之后,MVB驱动线程实时检测其配置的变量周期是否已到,若已经到达,则从共享内存中读取相关地址的数值并根据映射配置发送到MVB总线上,同时将从MVB总线上接收的变量根据映射配置写入共享内存的相关地址。

如上所述的方法,进一步包括:将由MVB驱动线程从MVB总线读取变量数据,然后写入共享内存,再由应用功能程序从共享内存读取;以及应用功能程序将变量数据写入共享内存,然后由MVB驱动线程从共享内存读取,并映射到相关端口发送到MVB总线上。

如上所述的方法,进一步包括:当应用功能程序有消息发送时,将相关变量打包成符合标准的消息格式,然后将消息发送到发送消息队列;MVB网卡驱动检测发送消息队列中是否有消息;如果有消息,则将该消息取出并发送到MVB总线上;以及与此同时或之前后或之后,当MVB网卡驱动接收到MVB总线上的消息时,将该消息发送到接收消息队列中;应用功能程序检测接收消息队列中是否有消息;如果有消息,将该消息取出然后根据关联关系将消息中的数据映射到功能进程的相关变量上。

如上所述的方法,进一步包括:应用功能程序实时检测其配置的变量周期是否已到,若已经到达,则从共享内存中读取相关地址的数值并对所映射变量进行更新,同时向共享内存相关地址写入需要更新的变量的数值;以及与此同时或之前后或之后,专用硬件驱动线程实时检测其配置的变量周期是否已到,若已经到达,则从共享内存中读取相关地址的数值并根据映射配置发送到目标机专用硬件,同时将从目标机专用硬件接收的变量根据映射配置写入共享内存的相关地址。

如上所述所述的方法,进一步包括:运行系统仿真模型,提供仿真信号;以及通过平台信号接口将仿真信号提供到应用功能程序,测试应该功能程序。

如上所述所述的方法,进一步包括:将目标机代码下载到目标机;以及在目标机运行目标机代码。

如上所述所述的方法,进一步包括:运行系统仿真模型,提供仿真信号;以及通过通信信号接口将仿真信号提供到目标机,测试目标机代码。

附图说明

下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:

图1是根据本发明的一个实施例的集成软件开发平台的结构示意图;

图2是根据本发明的一个实施例的配置模块示意图;

图3是根据本发明的一个实施例的代码生成模块示意图;

图4是根据本发明的一个实施例的集成软件开发平台与目标机关系示意图;

图5是根据本发明的一个实施例的生成代码的流程图;

图6根据本发明的一个实施例的MVB过程数据通信的代码生成机制示意图;

图7根据本发明的一个实施例的MVB过程数据通信的代码生成机制原理图;

图8根据本发明的一个实施例的目标机硬件控制代码生成机制示意图;

图9根据本发明的一个实施例的功能进程与驱动进程间变量交互方法流程图;

图10根据本发明的一个实施例的MVB过程数据通信的代码生成机制示意图;以及

图11是根据本发明的一个实施例的功能进程与驱动进程间变量交互方法流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明涉及系统集成技术,属于轨道车辆关键技术之一。在本文中“列车”与“轨道车辆”具有相同的含义而可以相互替换使用。

列车网络控制系统是轨道车辆的神经中枢,承担着整个列车的控制、监视、诊断与保护等任务。列车网络控制系统的控制范围涉及列车上的牵引系统、制动系统、高压系统、辅助供电、空调、行车安全设备、车门、照明等多个子系统。

对于列车而言,不但各子系统之间的网络通讯协议非常复杂,更重要的是基于网络通讯的逻辑控制算法和故障诊断策略也非常复杂。由于列车网络控制系统是一个大型、复杂、高度集成化的系统,因此,采用一种可视化、模块化的平台对系统的软件进行开发是对列车网络控制系统进行安全、可靠、高效集成的重要保证。

更进一步地,由于列车网络控制系统涉及多个子系统并且由多个不同功能的软件集成而成;如果针对列车控制网络系统的软件开发与仿真测试都采用了不同的平台,就会导致软件功能仿真测试需要等待所有的功能软件全部编写完成并集成后才能进行。而且,一旦检测到软件缺陷,就需要进行较长时间的分析才能定位原因。这种方式效率非常低下,使得软件开发的周期大大增加。

根据本发明的各个实施例,以通用软件平台为基础,将系统硬件驱动与软件平台相结合,使软件平台生成的目标代码能够完成列车网络控制系统的集成控制功能,并实现对系统硬件驱动和通信控制功能,从而提出一种列车网络控制系统集成开发平台。

图1是根据本发明的一个实施例的集成软件开发平台的结构示意图。如图1所示,集成软件开发平台100包括逻辑编程模块101、配置模块102和代码生成模块103。逻辑编程模块101包括基础进程以及一个或多个由基础进程起始的功能进程的编程部分;其中至少一个功能进程是周期任务,其中基础进程用于调度包括周期任务的功能进程。由于列车网络控制系统对于列车的运行安全非常重要,本发明的实例可以对包括周期任务的功能进程进行合理的调度对保证自身集成软件的安全性和可靠性。同样是出于例如列车运行安全性的考虑,根据本发明的一个实例,基础进程用于监视至少一个功能进程。

根据本发明的一个实例,使用者可以利用逻辑编程模块101在功能进程中实现列车网络控制系统的逻辑控制和功能算法等的应用编程。采用基础进程与功能进程分离的方式,即基础进程主要用来关注任务调度和/或监控,而功能进程用来实现具体的应用,可以保证控制的实时性、安全性和可靠性。

图2是根据本发明的一个实施例的配置模块示意图。如图2所示,配置模块102包括驱动配置部分201和变量配置部分202。驱动配置部分201包括通信网卡驱动子部分、硬件驱动子部分、诊断存储子部分和人机交互子部分。

通信网卡驱动子部分用于目标机的网络通信。列车网络控制系统运行的基础是网络通信。因此,对通信网卡进行驱动实现通信功能是本发明的集成软件开发平台完成的一个主要功能。

硬件驱动子部分用于与目标机的硬件进行通信和控制。在列车网络控制系统的目标机上会进行例如电源管理、模拟量采集、硬件保护、输入输出控制等功能。因此,对目标机硬件的驱动也是本发明的集成软件开发平台的功能之一。

诊断存储子部分用于故障信息和故障相关信息的存储。列车网络控制系统涉及众多子系统。一个故障可能会产生多种故障现象,或导致多个其他故障产生。对故障及相关环境数据进行存储,能帮助系统维修时快速、准确定位故障源。因此,实现列车网络控制系统的诊断存储也可以是本发明的集成软件开发平台的功能之一。

人机交互子部分用于实现目标机的人机交互功能。列车网络控制系统是一个大型系统,系统的调试、维修和维护是一项复杂工作。因此,友好智能的人机交互功能是高效可靠集成列车网络控制系统的重要保证。因此,实现列车网络控制系统的人机交互功能也可以是本发明的集成软件开发平台的一个功能。

一般而言,目标机的通信协议配置文件和硬件配置文件中规定了与目标机进行通信和对目标机进行控制所需的配置信息。驱动配置部分201通过用户输入的通信协议配置文件和硬件配置文件获得通信网卡驱动子部分、硬件驱动子部分、诊断存储子部分和人机交互子部分所需的驱动信息。代码生成模块103根据驱动配置部分201生成目标机的驱动程序代码。根据本发明的一个实例,通信协议配置可以保存在驱动配置部分201中。根据本发明的一个实例,硬件配置文件中包括通信协议的配置。根据本发明的一个实例,目标机驱动程序的生成可以由代码生成模块103自动完成,因此驱动进程不需用户编程实现。

变量配置部分202用于将逻辑编程模块101的编程部分中定义的变量与驱动配置部分201中定义的变量相关联。举例而言,目标机包括采用多功能车辆总线MVB通信协议的硬件资源。根据目标机的MVB和硬件配置文件,变量配置部分202可以提取MVB和硬件配置文件中的变量。另一方面,变量配置部分202也可以提取逻辑编程模块101的编程部分定义的与MVB通信的变量及硬件控制或寄存器的变量。根据本发明的一个实例,变量配置部分202实现这两部分变量之间的关联,完成逻辑编程模块101的变量到MVB数据和硬件端口的映射。根据本发明的一个实例,使用者可以参与变量之间的关联。

图3是根据本发明的一个实施例的代码生成模块示意图。如图3所示,代码生成模块103包括:

代码生成模块103根据逻辑编程模块101的用户编程和配置模块102中驱动配置部分和变量配置部分生成用于目标机的代码。根据本发明的一个实施例,代码生成模块103根据逻辑编程模块101的编程部分,生成基础进程的代码和功能进程的代码。其中,基础进程的代码中可以包括对至少一个功能进程调度和/或监视的代码。根据本发明的一个实施例,代码生成模块103根据配置模块102的驱动配置部分生成用于目标机的驱动程序的代码,其可以包括通信网卡驱动进程、硬件驱动进程、诊断存储驱动进程和人机交互驱动进程的代码。

根据本发明的一个实施例,代码生成模块103根据配置模块102的变量配置部分生成变量关联管理代码。变量关联管理代码定义功能进程与驱动进程之间的变量映射、端口映射和/或消息数据的交互,从而实现对目标机的通信和控制功能。根据本发明的一个实例,变量关联管理代码通过共享内存和消息队列方式分别完成通信数据、硬件变量和消息数据的交互。

如图1所示,本发明的实施例的集成开发平台100进一步包括代码集成模块104和代码运行模块105。代码集成模块104用于将针对一个或多个目标机的多个软件代码进行集成,从而得出包括针对一个或多个目标机的集成软件。代码集成可以以多种方式进行。举例而言,在本发明的一个实施例中,在集成开发平台的代码集成模块104包括定义对一个或多个目标机上运行的多个软件进行控制的系统软件以及系统软件与该多个软件之间的接口以及该多个软件之间的接口的集成代码。进一步地,代码集成模块104生成包括一个或多个目标机的多个软件代码的经集成的系统代码,从而将该多个软件集成到相互关联的、统一和协调的系统中,使资源达到充分共享,实现集中、高效、便利的管理。进一步地,代码集成模块104连接到代码生成模块103。代码生成模块103可以利用配置模块102的配置根据经集成的系统代码生成针对一个或多个目标机的代码。

在本发明的另一个实施例中,集成开发平台的代码集成模块104可以利用经定义的系统模型完成多个目标机软件的系统集成。根据本发明的一个实例,系统模型定义对该多个目标机的控制和多个目标机之间的交互。系统模型可以是集成开发平台自身定义的,也可以是从外部导入的。

例如,CB平台本身就带有仿真功能。按照实际需求,使用者可以在基于CB平台的集成开发平台上编写列车电气系统模型。该列车电气系统模型包括列车电路模型和子系统功能模型。其中,子系统功能模型包括但不限于牵引子系统、制动子系统、辅助子系统、门子系统、空调子系统、和照明子系统等。根据本发明的一个实例,集成开发平台可以利用使用者预先定义的列车电气系统模型实现系统集成。

代码运行模块105包括编译部分和运行部分。编译部分用于对逻辑编程模块101或者代码集成模块104生成的代码进行编译。运行部分运行经编译部分编译的代码。如图1所示,代码生成模块103生成的目标机代码或者代码集成模块104生成的集成代码都可以在运行部分运行。由此,在不需目标机或系统硬件的情况下,集成开发平台即可以对逻辑编程模块101的代码或者代码集成模块104生成的集成代码进行测试。

图4是根据本发明的一个实施例的集成软件开发平台与目标机关系示意图。如图4所示,基础开发平台401根据目标机通信和硬件配置文件以及其他所需信息生成目标机硬件的驱动程序代码。进一步地,通过实现使用者的应用编程和目标机硬件的驱动程序之间的变量关联,基础开发平台401生成针对于目标机的程序代码。基础开发平台401可以根据本文的各个实施例来实施上述过程。

基础开发平台401生成的目标机代码被转移到目标机中。目标机包括目标机硬件402和在目标机硬件上运行的目标机软件403。根据本发明的一个实例,目标机硬件402包括通信网卡、专用硬件和诊断存储器。通过运行目标机代码,目标机软件包括了基础进程,例如图4中示出的周期任务调度及监控进程。进一步地,目标机软件还包括了多个功能进程_T1…_Tn。基础进程调度并监控功能进程_T1…_Tn。进一步地,与目标机硬件402相对应,目标机软件还包括了通信网卡驱动进程、专用硬件驱动进程、和诊断存储驱动进程。这些驱动程序与其所对应的网卡、专用硬件和诊断存储器通信和实现对应的控制功能。更进一步地,为了实现目标机硬件与外部设备(例如外部PC机404)的交互,目标机软件还包括了人机交互驱动进程。

更进一步地,目标机软件还包括变量交互管理机制。通过变量交互管理机制实现功能进程_T1…_Tn和各个驱动进程之间的变量关联和消息交互。变量交互管理机制可以通过共享内存和消息队列实现。

如图4所示,基于集成软件开发平台的目标机代码采用功能进程与驱动进程的分离的结构。在集成开发平台,使用者完成控制逻辑和算法等应用功能的编程。编程完成后,通过集成开发平台401的变量配置和驱动配置工具使得使用者的变量与驱动变量关联,在代码生成机制生成目标机代码。

图4中的虚线示出了集成开发平台的目标机代码与目标机软件之间的对应关系。根据集成开发平台的“应用编程”的任务调度和监控代码和任务功能代码,目标机软件生成例如“周期任务调度与监控进程”的基础进程和“功能进程_T1”~“功能进程_Tn”。根据集成开发平台的“驱动配置”的驱动代码生成例如“通信网卡驱动进程”、“硬件驱动进程”、“诊断存储驱动进程”、“人机交互驱动进程”的驱动进程。根据集成开发平台的“变量管理”关联关系代码实现“变量交互管理”,完成目标机上各个功能进程与各驱动进程间变量关联和消息交互。

具体而言,功能进程可以是周期进程_T1~_Tn,其主要实现列车网络控制系统的逻辑控制、算法等应用功能,由用户编程实现。由于其对系统的实时控制十分重要,采用单独的“周期任务调度及监控进程”对“功能进程_T1”~“CB功能进程_Tn”进程调度及监控,以保证系统控制的实时、可靠和安全性。

“通信网卡驱动进程”驱动目标机通信网卡,从而将目标机变成列车网络管理系统中的可管理和控制的部件。“硬件驱动进程”驱动目标机硬件实现目标机硬件的功能。“诊断存储驱动进程”进程完成诊断存储算法并管理诊断存储器硬件。“人机交互驱动进程”完成与PC机交互。驱动进程不需用户编程实现。

通过“变量交互管理”机制实现各个功能进程中定义的变量与各个驱动进程中变量的关联,从而完成应用软件对实际目标机的通信与控制,实现其作为列车网络控制系统集成软件开发平台的功能。

根据本发明的一个实施例的集成开发平台生成的目标机代码可根据目标机的通信协议实现与目标机的通信功能,使用者可专注于系统应用控制软件的开发,而不必考虑网络通信的底层问题,从而大大降低了系统集成的难度,可快速提高自主集成网络控制系统的能力。

根据本发明的一个实施例的集成开发平台生成的目标机代码可实现对目标机硬件的控制功能,使集成开发平台能够根据不同的配置文件,适应不同的硬件平台系统,从而极大增强了集成开发平台的适用性,为不同项目的硬件平台提供通用集成开发平台。

本发明的集成开发平台可以独立创建也可以基于通用的可视化模块化编程标准IEC61131的软件平台,例如控制策略的组态软件ControlBuilder、ABB公司的自动化组态软件Automation Builder、或其他的PLC可编程逻辑控制器编程工具。

以控制策略的组态软件Control Builder(CB)为例,CB是一款满足IEC61131标准的开放的自动化软件平台,具有自动生成目标代码功能,其自带的代码生成器支持生成Windows、Linux和QNX等多种操作系统平台下的代码。以CB软件平台为基础,本发明的基础开发平台将系统硬件驱动与CB平台相结合,使CB生成的目标代码能够完成列车网络控制系统的集成控制功能,并实现对系统硬件驱动完成通信和控制功能,从而简便地实现本发明的列车网络控制系统集成开发平台。

列车网络控制系统的通信功能、硬件驱动等功能是TCMS系统运行的基础。根据本发明的一个实施例的列车网络控制系统集成软件开发平台具备对通信网络驱动与目标机硬件驱动的能力,实现了将通信网卡驱动、目标机硬件驱动与模块化编程平台进行结合,因此可以作为TCMS系统的一部分。

TCMS是一个涉及子系统众多的大型系统,其调试、故障的诊断处理及系统维修维护等都十分复杂。根据本发明的一个实施例的列车网络控制系统集成软件开发平台具备高效智能的诊断存储和人机交互功能,实现了将诊断存储和人机交互功能与模块化编程平台进行结合,满足了TCMS系统的要求。

TCMS具有保证列车运行安全的功能,因此,TCMS集成软件本身也需要具有很高的安全性。根据本发明的一个实施例的列车网络控制系统集成软件开发平台使生成的目标机代码能对相关进程进行合理的调度与监控,保证控制进程运行的安全性。

图5是根据本发明的一个实施例的集成开发平台生成代码的流程图。如图5的实施例所示的方法可以应用于图1-图4所示的集成开发平台。如图5所示,基于集成开发平台的代码生成方法500,包括:

步骤510,在集成开发平台中,进行列车网络控制系统的控制逻辑、算法等应用功能编程,得出应用功能程序;

步骤520,提取应用功能程序中应用功能程序变量,其包括需要参与网络通信的通信变量、硬件控制变量或硬件控制寄存器变量;

步骤530,提取驱动程序变量,其包括网络通信配置和硬件配置变量;

步骤540,关联应用功能程序变量和驱动程序变量,完成应用功能程序的变量到网络通信数据和硬件端口的映射;以及

步骤550,利用代码生成工具,生成目标机代码。

如本文中所叙述的,步骤510的应用功能编程可以是通用的软件平台上的编程而使用者不必关心底层的通信和驱动问题。步骤520中的应用功能程序变量可以从应用功能程序的定义中、头文件中或特定的类中提取。这些应用功能程序变量可以是使用者自行定义的,也可以集成开发平台中预先定义而提供给使用者使用的。因此,步骤520中的提取的含义是非常广泛的。步骤530的驱动程序变量可以通过网络配置文件和硬件配置文件或者用户定义等途径获得。推荐的方式是提供标准的网络配置文件和硬件配置文件以及人机接口配置文件以使得集成开发平台可以根据这些配置文件自动生成相关的驱动程序代码,并获得驱动程序变量。步骤540完成应用功能程序变量与通信数据及硬件端口信号和寄存器的映射,从而实现应用功能程序对网络通信硬件和目标机专用硬件等目标机硬件的控制。

根据本发明的一个实例,完成应用功能程序变量与硬件数据的映射后,在步骤550,集成开发平台首先生成两类可执行进程的代码和一个动态链接库:

1)根据应用功能程序生成的列车网络控制系统的基础进程和功能进程的代码;

2)根据目标机专用硬件配置文件生成的目标机硬件驱动进程;以及

3)根据网络通信配置文件生成的网卡动态链接库。

进一步地,在步骤550,集成开发平台生成代码以实现以下功能:进程1)和进程2)间以共享内存方式完成的目标机硬件信号端口和寄存器的交互;进程1)将调用动态链接库生成网卡驱动线程;以及进程1)和网卡驱动线程间通过共享内存和消息队列方式分别完成网络通信数据和消息数据的交互。

以下以MVB协议为例,进一步说明目标机代码的生成机制。MVB协议是目前列车中广泛采用的一种通信协议,具有代表性。本领域技术人员应当理解,其他的列车通信协议也可以类似地应用于本发明的集成开发平台和代码生成方法中。

根据本发明的一个实施例,由于MVB过程数据、MVB消息数据和硬件控制信号实现的功能和通信机制不同,因此三种数据与应用功能程序变量的交互及目标机代码生成机制也略有不同,将分别在图6-8中进行说明。

图6根据本发明的一个实施例的MVB过程数据通信的代码生成机制示意图。如图6所示,MVB过程数据通信的代码按如下方式生成:在应用功能程序的进程中,该进程将调用MVB网卡的驱动动态链接库,并生成一个MVB网卡驱动线程,代码生成模块将根据应用功能程序变量与MVB过程数据之间的关联信息,在两个进程间建立一块共享内存,完成应用功能程序相关变量与MVB网卡驱动间的变量内存映射。应用功能进程和MVB网卡驱动线程根据不同的过程数据端口配置,周期的更新及读取其与共享内存间接口的变量,从而完成数据的周期交互。通过这一代码生成机制,完成了应用功能程序变量到MVB过程数据通信的功能。

图7根据本发明的一个实施例的MVB消息数据通信的代码生成机制示意图。如图7所示,MVB消息数据的代码按如下方式生成:在运行应用功能程序进程后,该进程将调用MVB网卡的驱动动态链接库,并生成一个MVB网卡驱动线程。代码生成模块将根据应用功能程序变量与MVB消息数据之间的关联信息,在应用功能程序进程和MVB网卡驱动进程间建立两个消息队列,分别为接收消息队列和发送消息队列。当应用功能程序进程有消息产生,或MVB进程从MVB总线上接收到消息时,两个进程都根据不同的消息数据配置,实时更新或读取消息队列中的消息,从而完成消息数据的交互。通过这一代码生成机制,完成了应用功能程序到MVB消息数据通信的功能。

图8根据本发明的一个实施例的目标机硬件控制代码生成机制示意图。如图8所示,目标机硬件控制代码按如下方式生成:在生成应用功能程序进程和硬件驱动进程两个进程后,代码生成模块将根据应用功能程序变量与专用硬件数据关联信息,在应用功能程序进程和目标机专用硬件驱动进程间建立一块共享内存,完成应用功能程序相关变量与目标机专用硬件驱动间的变量内存映射。两个进程都根据不同的硬件端口和寄存器配置,周期的更新及读取其与共享内存间接口的变量,从而完成数据的周期交互。通过这一代码生成机制,完成了应用功能程序变量到目标机硬件和寄存器控制功能。

图9是根据本发明的一个实施例的功能进程与驱动进程间交互方法的流程图。图9的实施例可以用于本申请图6-图8或其他的实施例中;但是应当理解,图9的实施例仅仅是用于举例目的而提出的一种实现方式,其他能够实现类似功能的方式也可以应用于本发明的方法之中。另外,图9的实施例中,也采用了列车中广泛采用的MVB通信协议。本领域技术人员应当理解,其他的列车通信协议也可以类似地应用于本发明的集成开发平台和代码生成方法中。

如图9所示,功能进程和MVB网卡驱动线程、目标机硬件驱动进程间通过共享内存和消息队列方式分别完成MVB过程数据、MVB消息数据和目标机硬件端口及寄存器的变量交互。

对于MVB过程数据变量交互:功能进程和MVB网卡驱动线程共享内存的一部分,即共享内存901,实现功能进程的相关变量与MVB网卡驱动间的变量内存映射。具体方法包括:

在步骤9110,功能进程实时检测其配置的变量周期是否已到,若已经到达,则在步骤9120,从共享内存901中读取相关地址的数值并对所映射变量进行更新,同时向共享内存901相关地址写入需要更新的变量的数值。

与此同时或之前后或之后,在步骤9210,MVB驱动线程实时检测其配置的变量周期是否已到,若已经到达,则在步骤9220从共享内存901中读取相关地址的数值并根据映射配置发送到MVB总线上,同时将从MVB总线上接收的最新的变量根据映射配置写入共享内存901的相关地址。

通过上述过程,如果功能进程希望从MVB总线接收某些变量数据,在,这些变量数据在步骤9220将由MVB驱动线程从MVB总线读取,然后写入共享内存901,再由功能进程在步骤9120从共享内存901读取并映射到功能进程的对应的变量。如果功能进程希望向MVB总线发送的变量数据,这些变量数据在步骤9120将被写入共享内存901,然后由MVB驱动线程在步骤9220从共享内存901读取,并映射到相关端口发送到MVB总线上。由此,上述方法完成了应用功能程序变量到MVB过程数据的通信功能。

同样地,对于MVB消息数据变量交互,功能进程和MVB网卡驱动进程间共享一个接收消息队列和一个发送消息队列,实现CB相关变量与MVB网卡驱动间的变量映射。具体方法如下:

在步骤9310,当功能进程有消息发送时,则在步骤9320将相关变量打包成符合标准的消息格式,然后将消息发送到发送消息队列903中。在步骤9330,MVB网卡驱动检测到发送消息队列903中是否有消息;如果有消息,则在步骤9340将该消息取出并发送到MVB总线上。

与此同时或之前后或之后,在步骤9410,当MVB网卡接收到MVB总线上的消息时,则在步骤9420,将该消息发送到接收消息队列904中。在步骤9430,功能进程检测到接收消息队列904中是否有消息;如果有消息,在步骤9440,将该消息取出然后根据关联关系将消息中的数据映射到功能进程的相关变量上,进行数据处理。

对于目标机专用硬件变量交互,功能进程和目标机硬件驱动进程间共享内存的一部分,即共享内存902,实现CB相关变量与目标机硬件驱动间的变量内存映射。具体方法如下:

在步骤9510,功能进程实时检测其配置的变量周期是否已到,若已经到达,则在步骤9520从共享内存902中读取相关地址的数值并对所映射变量进行更新,同时向共享内存902相关地址写入需要更新的变量的数值。

与此同时或之前后或之后,在步骤9610,目标机专用硬件驱动进程实时检测其配置的变量周期是否已到,若已经到达,则在步骤9620从共享内存902中读取相关地址的数值并根据映射配置控制相关硬件信号端口或寄存器,同时将从硬件信号端口或寄存器读取最新的变量根据映射配置写入共享内存的相关地址。

通过上述过程,完成了应用功能程序变量到目标机硬件控制的功能。本发明的一个优势在于,集成开发平台能够根据不同的用户配置文件,驱动不同的硬件系统,从而极大增强了集成开发平台的适用性,为不同项目的硬件平台提供通用集成开发平台。

同时,目前国际上已有的列车网络控制系统集成开发平台,只能用作软件开发,不能进行系统级仿真。若需要对所开发的软件进行系统级的仿真测试,则必须在另一软件平台上完成,从而导致了系统的软件开发与仿真测试的分离。并且不同的开发与测试平台,将产生不同的人员培训与维护,使得系统的复杂性和成本均增加。

图10是根据本发明的一个实施例的集成开发与仿真一体化平台的结构示意图。参考图1和10,本发明的一个实施例的集成开发与仿真平台1000包括集成开发平台1001、系统仿真模型运行模块1002、平台信号接口1003和通信信号接口1004。集成开发平台1001可以是如本文中实施例所描述的集成开发平台。集成开发平台1001至少包括代码运行模块。

系统仿真模型运行模块1002运行系统仿真模型。根据本发明的一个实例,系统仿真模型为列车电气系统仿真模型,其包括列车电路模型和子系统功能模型,例如牵引、制动、辅助、门、空调、照明等子系统的功能模型。根据本发明的另一个实例,系统仿真模型为子系统功能模型,用以完成对子系统的测试。根据本发明的一个实例,集成开发平台的代码集成模块从系统仿真模型获得软件集成所需的信息,实现代码集成。根据本发明的一个实例,系统仿真模型运行模块1002运行系统仿真模型,输出仿真信号。

平台信号接口1003用以将系统仿真模型运行模块1002输出的仿真信号接入集成开发平台1001;并将集成开发平台1001的信号接入系统仿真模型运行模块1002,实现集成开发平台1001与系统仿真模型运行模块1002之间的通信。

通信信号接口1004用以将系统仿真模型运行模块1002输出的仿真信号接入通信总线,并通过通信总线将仿真信号接入到目标机或者列车网络及电气系统;并且通过通信总线将来自目标机或者列车网络及电气系统的信号接入到系统仿真模型运行模块1002,实现目标机或者列车网络及电气系统与系统仿真模型运行模块1002之间的通信。

如图10所示,系统仿真模型包括输出接口程序。输出接口程序类似一种“软开关”,将系统仿真模型运行模块运行系统仿真模型产生的仿真信号接入平台信号接口1003或通信信号接口1004以及从平台信号接口1003或通信信号接口1004返回信号到系统仿真模型。

当需要验证集成平台开发过程中软件实现的逻辑控制或算法等功能的性能时,通过输出接口程序将系统仿真模型接入平台信号接口1003,则模型的输入输出信号将与集成开发平台软件的信号交互,从而可随时验证开发的列车网络控制系统软件的性能,而不需目标机硬件的支持。举例而言,平台信号接口1003将来自系统仿真模型的仿真信号作为目标机上的与“通信网卡驱动进程”进行交互的信号而接入集成开发平台;集成开发平台运行目标机软件并且将运行目标机软件逻辑控制或算法等功能的输出通过通信网卡驱动进程而输出集成开发平台再通过平台信号接口1003返回到系统仿真模型运行模块1002。

当目标机代码下载到目标机后,需要进行系统整体性能仿真验证或其他类型的目标机仿真验证时,通过输出接口程序将系统仿真模型接入通信信号接口1004,则模型的输入输出信号将与通信总线上的信号交互,从而验证集成开发平台开发的目标机软件的实际运行性能。根据本发明的一个实例,目标机上的仿真可以在列车网络控制系统软件运行的情况下进行。

图11是根据本发明的一个实施例的集成开发与仿真验证方法流程图。如图11所示,集成开发与仿真验证方法1100包括如下三个阶段。本领域技术人员应当了解,以下三个阶段既可以综合运行,也可以各自独立运行,完成各自的功能。

1.子功能开发阶段:在集成开发与仿真平台上,在步骤1101-1103为例的步骤中,进行针对不同功能的软件的开发,例如功能1-功能n的软件。功能1-功能n的软件可以针对不同的目标机也可以针对相同的目标机。

在步骤1110,运行列车电气系统仿真模型;接下来,在步骤1111,将列车电气系统仿真模型的仿真信号通过信号接口程序接入集成开发与仿真平台上,则例如功能1-功能n的各子功能软件就可以分别与列车电气系统仿真模型通信,实现各自独立的仿真测试功能。由此,在较小代码规模下,能够迅速评估各个子功能软件的性能,避免在软件集成后产生功能错误的可能。

2.系统软件集成阶段:在各子功能软件开发完成后,在步骤1104,将各个子功能软件进行集成,从而完成列车网络控制系统的软件集成。

将列车电气系统仿真模型的仿真信号通过信号接口程序接入平台信号接口,则在步骤1105中,经集成的系统软件与列车电气系统仿真模型通信,进行系统集成软件总体的功能仿真与测试。由此,在同一软件平台下,能够快速测试系统集成软件的功能是否满足要求,而不需系统硬件平台和通信网络的支持。因此,本发明的方法实现了更加快速、准确和高效的对系统集成软件功能进行测试。

3.实际系统测试阶段:将开发完成的各个子功能软件或者系统集成软件,通过集成开发平台的变量配置和代码生成机制,在步骤1106完成变量配置并在步骤1107生成目标机代码,在步骤1108下载到目标机上进行运行。在步骤1112中,将列车电气系统仿真模型的仿真信号通过信号接口程序接入通信信号接口,则目标机就与列车电气系统仿真模型通过通信总线进行通信,从而完成实际系统性能的仿真测试。

由此,通过本发明的实施例的集成开发与仿真平台的一体化使列车网络控制系统在整个开发过程中可随时进行软件功能的仿真测试。

在发明的集成开发与仿真测试一体化平台中,只需要建立一套“列车电气系统仿真模型”就能对列车网络控制系统集成开发的各个阶段成果分别进行仿真测试,而通过分阶段的软件仿真测试,能最迅速的定位软件缺陷,从而快速解决在软件开发过程中的问题。因此,通过发明的集成开发与仿真测试一体化平台,能大幅提高列车网络控制系统集成软件开发的效率和可靠性。

根据本发明的实例提出的列车控制网络系统仿真测试平台是进行列车控制网络开发必备的地面试验工具及运行工况试验模拟平台。它能够在列车网络控制系统的验证、维护等阶段,实现对列车的网络通讯协议、逻辑控制算法、网络控制系统性能、故障诊断策略等方面的分析验证。通过地面仿真测试平台的验证和测试,大大减少所开发的系统在列车实际运行时可能出现的问题,极大保证了系统的运行安全。

根据本发明的实例提出的集成开发和仿真测试一体化的平台,以例如CB的通用软件平台为基础,在将其作为列车网络控制系统集成开发平台的基础上,实现将集成开发和仿真测试平台的一体化。本发明的实例使得在软件开发过程中,不同的功能软件可以直接与仿真测试模型进行接口,进行该功能软件的仿真测试,而不需等待其他功能软件的完成,从而能迅速定位软件缺陷,快速解决在软件开发过程中的问题,最大限度的降低所有功能软件集成后出现问题的可能。

本发明的集成开发平台或者集成开发与仿真平台符合IEC61131标准,具有以下技术效果:

1.对于列车网络控制系统集成软件开发,本发明的实例可进行可视化、模块化的列车控制逻辑、算法等软件开发,使复杂的软件开发工作变得轻松、灵活和可靠,从而大幅缩短系统软件开发周期、提高效率、降低成本。

2.对于集成开发平台的体系结构,根据本发明的实例生成的目标机代码,可实现列车网络通信、目标机硬件控制、诊断存储、人机交互、进程调度及监控等TCMS系统集成开发所必备的功能。使用者可专注于系统应用控制软件的开发,而不必考虑底层驱动问题,从而大大降低了系统集成的难度,可快速提高自主集成网络控制系统的能力。

3.对于集成开发与仿真测试平台一体化,在软件开发过程中,某功能软件可以直接与仿真测试模型进行软件接口,实现功能软件的仿真测试,而不需等待其他功能软件的完成。从而本发明的实例能迅速定位软件缺陷,快速解决在软件开发过程中的问题,最大限度的降低所有功能软件集成后出现问题的可能。

上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号