CBTC 系统(Communication Based Train Control System)是一种基于通信的列车控制系统,全系统包括 ATS(列车自动监督)子系统、CBI(计算机联锁)子系统、ZC(区域控制器)子系统、DCS(数据通信)子系统以及 OBCU(车载控制器)子系统共五部分。在富欣智控的近 7 年时间里,本人一直在 OBCU 子系统研发组从事相应的研发任务,亲身经历了该产品的原型研发,实验室仿真试跑,试验线真车试跑,SIL4 安全认证,四川成都的中唐空轨试验线的研发以及最终的上线运行,第一条商用线项目(浦东机场捷运系统,2019 年投入商用)的研发。
OBCU 子系统的实现主要包括三层:第一层是自研的硬件板卡;第二层是 2*2oo2(二乘二取二)安全平台,基于 windRiver
操作系统,完全采用 c 语言开发的;第三层是 OBCU 的应用软件层,主要包括列车安全防护的业务逻辑以及自动控车的业务逻辑,业务逻辑层几乎采用 SCADE 建模语言开发,与安全平台的接口部分以及浮点运算相关的逻辑是采用 c 语言开发。主要工作包括三部分:OBCU 子系统需求和软件架构相关文档的部分章节的编写和修改以及发布,OBCU 子系统应用软件部分的部分功能模块的开发和调试,实验室环境下和现场真车环境下的调试。具体参与了应用软件与安全平台软件的接口开发与维护,测速测距相关功能模块的开发和维护,二乘二取二系统的双系同步切换功能的开发和调试。
安全苛求型系统要求自顶向下的开发,所有的实现必须有源可溯;上下游文档关系追踪方面,采用 DOORS 来实现的,方便审查需求的来源。文档的发布方面,采用的是 M-Files,方便查看文档发布过程中的评阅意见和升版信息。应用软件开发采用了 SCADE(Safety-Critical Application Development Environment)建模语言以及 C 语言,其中 SCADE 建模语言是一种专门用于安全苛求软件的设计开发的建模语言。SCADE 是 ANSYS 公司的一款产品,使用 SCADE 语言建模,开发者只要保证模型是符合需求的(SCADE 便于将设计和开发工作融合,尽量减小设计和开发之间的隔阂),SCADE 保证生成的 c 语言代码与模型完全等价,且符合安全编码规则。开发调试环境,在 PC 环境下则采用 VS2012 下编译出的 PC 版本的应用软件;在嵌入式环境下,则在 VxWorks 系统下与安全平台软件一起编译成目标程序,最后烧录到我们的机笼里运行调试。
具体的项目经历如下:
1. OBCU 子系统原型机的研发项目(2012 年-2013 年年底,包含同济大学试验线上的真车试验);整个原型机的开发持续约 5 年,本人加入富欣的时候原型机开发已经到后期阶段;所以,主要参与的是实验室调试工作,以及模型代码的优化工作;
2. OBCU 子系统 SIL4 安全认证项目(2013 年底-2014 年底,包含张江试验线上的真车试验);逐步接手到最终完全接手 OBCU 与安全平台的接口开发;继续完成实验室调试工作;完成外部传感器数据采集与表决模块的开发;完成测速测距模块的开发;完成驾驶模式判定模块的开发;完成回退防护模块和倒溜防护模块的开发;完成双系冗余系统模块的部分开发外加实验室调试(主备双系统,主系不能正常工作的时候,备系能自动接管);以及上述几个模块的安全认证全过程的文档编写和问题分析;
3. OBCU 子系统 2.0 研发项目(2015 年-2016 年中);应用于安全平台的接口、实验室调试、外部传感器数据采集与表决、测速测距、线路数据文件的读取与查询模块的开发以及其它几个安全防护模块的开发;由于 2.0 较 1.0 相比有一个区别是基于支持欧式信标开发,因此增加对欧式信标报文的解析,这部分工作是本人从零开始做起的(报文编码格式按位编码的,因此经历这个项目以后,能熟练的使用 c 语言的位操作了)。另外,2.0 相比于 1.0 而言,硬件架构也做了较大的调整,因此在调试工作上也有较大的不同。
4. 成都中唐悬挂式单轨试验线项目(2016 年中-2017 年二季度);该项目是公司成立以来,第一个需要最终交付给业主
作为厂区内长期使用的项目,也是我们基于 OBCU 1.0 而完成并做到双系冗余的悬挂式单轨列车的信号系统。本人参与的工作与上述的项目基本类似。
5. OBCU 子系统无人驾驶项目的研发(2016 年-2017 年年底研发和实验室调试,其中 2019 年 8 月-10 月在南京浦镇车辆厂内部试车线真车调试);除了上述项目中陈述过的模块的开发工作和文档工作以外,该项目的实验室调试工作和现场试车项目都是由我主要参与的。
6. 上海浦东机场捷运系统的研发与最终交付运营(2016 年参与该项目的投标准备工作;2017 年 3 季度-2019 年 8 月);该项目是公司成立以来拿到的第一单商用项目(最终需要载客运营),在前面的 2 年多时间里,我作为该项目的主力,完整参与开发,完全独立的完成实验室调试和配合测试人员分析问题,配合研发同事解决问题,完成 OBCU 的历次版本发布工作以及相关的工作。直到 2019 年 9 月 16 号该项目开通载客运营后,我才基本从该项目退出,后期主要由维护人员接手。
7. 柳州跨坐式单轨项目(2018 年 4 季度-至今);该项目接触到的车辆是庞巴迪的 cityflow 系列的进口车型,该车原装搭配是庞巴迪自己的信号系统;目前国内引进该款车型的浦镇庞巴迪车辆厂希望有第二家的信号系统能适配该种车型,因此我们一直在跟踪该项目。目前,已经进入前期的研发阶段;本人作为该项目的 OBCU(车载)组的对外接口人。上述大概我这 7 年的主要项目经历;总结一下大概的工作项如下:
OBCU 应用层软件与安全平台层的接口开发; OBCU 子系统的线路数据文件(也称电子地图)的读取以及相关的查询模块开发和调试的;
实验室调试,保证整个系统能正常运行而不影响后面的功能调试(所以这一部分的工作是应用软件和平台软件之间的联合调试,确保所有的接口都正常);传感器数据采集模块、测速模块以及其中几个安全防护相关的模块开发的(团队协作的主要模式是每人承
担几个模块,包括文档、开发以及后期的功能调试和问题分析解决); OBCU 子系统需求文档、OBCU 子系统架构文档、OBCU 子系统软件需求文档、OBCU 子系统架构文档以及 OBCU
与各外部子系统之间 ICD(接口控制文档)的编写与发布(包括追踪关系的建立);版本发布工作(包含与我相关的功能模块的开发);
目前在团队中除了能承担主要的开发和调试工作以外;还承担了很多现场调试和问题分析的工作,以及部分设计谈判之类的工作。