大学刚刚毕业的时候,我在一个专门做航电的部门从事机载显控设备的开发工作。虽然当时的职位是“软件工程师”,但是有幸的承担一部分Apps engineer的工作,其中一项职责就是做SITS bench测试,这种“累活”自然而然的就由我们新人来承担了。我负责的是CAS(crew alerting system) message的测试工作,前后用了一周多的时间,把这段经历总结一下,当个留念。
Apps SCN由来
根据Pilatus客户的EPECS APEX IDC(Interface Control Document)文件描述,针对PC-12NG飞机新装配的普惠 (Pratt & Whitney) 发动机以及EPECS(Engine and Propeller Electronic Control System)系统,客户对我们的Primus Apex系统提出了一些技术需求:新的Apex软件(EPECS build)应该同时支持老版的PT6A-67P发动机和新版的EPECS发动机(PT6E-67P)。APM (Aircraft Personality Modules, 飞机定制化模块)也要针对不同版本的发动机进行区别。
The new Primus APEX Software EPECS Build shall support theold engine (PT6A-67P) and the new EPECS engine (PT6E-67P). An APM option shall be used to differentiate between the old engine and the new EPECS engine.
这次的改动包括了GGF(Graphical generation function), MWF(Monitor warning function), CAS(Cockpit alerting system)等部分。对于CAS,某些CAS msg的逻辑需要考虑到EPECS的input,因此我们的工作就是针对新加入的EPECS系统,更新、添加部分的CAS msg逻辑。
CAS Message
Message inhibits
当飞机处于某一阶段或着开启了某个功能的时候,比如在起飞阶段,飞行员更多的是把注意力集中在操控上面,因此某些相对来说并不重要的CAS msg不能打扰到飞行,因此CAS msg就会被抑制(Inhibit)。Inhibits分成两种:一种叫Global Inhibits,包括G1_Takeoff, G2_Approach, G3_EngStart,即在特定的飞行阶段,为了不打扰飞行员的操作,会inhibit某些CAS msg;另一种叫Functional Inhibits,包括F1_ElecPwrOn, F2_Standby_Pwr, F3_Taxi, F4_Cruise,即在某种状态下,某些CAS msg就不应该alert,比如在Cruise阶段,External Power是不可能出现的,因此会被inhibit。
EPECS logic
在我的理解来看,EPECS是一个集成在普惠发动机的监控系统。有了EPECS,某些CAS逻辑不需要Apex系统自己去进行逻辑判断,而是EPECS把发动机的参数、状态直接传递给了Apex。比如engine auto start逻辑,在之前版本的发动机中,Apex需要把onGround, NG_SPEED, cutoff等逻辑进行组合,然后判断出现在是否是engine auto start;然而有了EPECS后,直接接收EPECS_ENG_AUTO_START逻辑来判断是否是engine auto start。
SITS bench
SITS(system integration test station) bench,专门用作系统级别的测试平台,涵盖了飞机上最基本的外设和功能,比如MFC(multi-function controllder), CCD(cursor control device),甚至会装配用于模拟飞行游戏的摇杆配合PC SIM实现飞机的动态仿真。
目前只有Phx和Brno有PC12的SITS bench,因此Apps SCN test只能用远程连接的方式到Phx的SITS bench做测试。Phx的PC12 SITS bench由三台PC组成:Loader PC, PC SIM PC, TIU PC。Loader PC顾名思义了,load dev build使用的是CMC Remote Terminal(如下图所示),小吐槽一句,CMC的copyright写的是1999-2016,我们都用的是这么上古时代的工具。。不过听说777的航电系统是用的IBM电脑开发的,现在Phx还留着这么几台老古董。
CMC CMC(Central Maintenance Computer)如下图所示,是用来做Apex系统维护的软件,集成了System diagnostic,extended maintenance,data loader几个功能。可以load dev build, APM,做系统故障诊断,生成CMC报告等。
image 在正常的情况下,ASCBD的变量都是不可写的,但是在测试的时候,某些Group的变量很难去通过逻辑去改变它们,比如Csioone。于是就需要配置ESCAPE registry,将某些Group的变量变成可写。
测试的过程就相对无聊了,根据Apps Spec上的CAS message逻辑,在TBOX中配置好input,output,然后测试不同的情况下(逻辑的各个分支,各种Inhibits),CAS Window的显示是否是正常的。
总结
Apps SCN测试是一个相对来说比较枯燥且重复性的工作,但是作为一个title是Software engineer的菜鸟工程师,能够接触到更high level的Apps engineer的工作也是蛮新鲜的,今天下午的时候,一边听着TOBU,一遍测试,作为一个航空人能做机载的系统测试也是很有成就感的。
网友评论