您的当前位置:首页TCMS系统与APU通信设计开发及验证

TCMS系统与APU通信设计开发及验证

来源:小侦探旅游网
龙源期刊网 http://www.qikan.com.cn

TCMS系统与APU通信设计开发及验证

作者:朱红岗 张哲瑞

来源:《电子科学技术》2016年第06期

摘 要:针对地铁车辆列车网络控制系统(TCMS)的构成及编组拓扑,本文给出了TCMS系统设计和开发的详细流程,介绍了系统开发环境搭建、ISaGRAF Target移植、ISaGRAF图形封装,并以TCMS与辅助控制单元(APU)二者之间建立通信为例进行说明。通过TCMS系统与APU设备进行联调试验,达到了通信的良好性能,验证了TCMS系统与APU通信设计开发的准确性、可操作性和稳定性。

关键词:列车网络控制系统;ISaGRAF;辅助控制单元;通信;设计开发

中图分类号:TP223.339;TN91 文献标识码:B 文章编号: 2095-8595(2016) 06-726-05 电子科学技术 URL: http//www.china-est.com.cn DOI: 10.16453/j.issn.2095-8595.2016.06.014 引言

列车网络系统(Train Control and Manager System ,TCMS)作为列车的“大脑”,承担着列车控制指令传输、设备状态监测、故障的诊断、信息管理以及事件记录等功能[1],实现列车的分布式控制,并提高了列车运营的可靠性。本文首先介绍了TCMS系统拓扑结构,然后搭建了系统开发环境,移植了ISaGRAF Target,以TCMS与辅助控制单元(Auxiliary Power Unit ,APU)通信为例,进行底层API接口函数编写及ISaGRAF功能模块编写,最后基于LabView编写了上位机监视TCMS与APU之间的通信数据,验证了TCMS与APU通信的准确性。

1 TCMS系统拓扑

列车网络控制系统(TCMS)包含以下模块:中央处理单元(CCU)、远程输入输出单元(RIOM)、人机交互单元(HMI)、事件记录仪(ER)和中继器(REP)[2]。不考虑车辆重新编组问题,本文中TCMS系统采用MVB作为列车级总线和车辆级总线[3],采用Ethernet作为TCMS系统调试、维护及服务网络。以地铁车辆为例,采用4M2T编组方式,TCMS系统关联的子系统对象包括:列车自动控制系统(ATO)、牵引控制单元(TCU)、辅助控制单元(APU)、制动控制单元(BCU)、门控单元(DCU)、空调控制单元(HVAC)、乘客广播(PA)、旅客信息系统(PIS)、司控器(MC)等,具体拓扑结构如图1所示。 2 TCMS系统开发环境搭建

龙源期刊网 http://www.qikan.com.cn

列车网络控制系统是专为列车的通信与控制而设计,可以将其看作一套车载计算机系统,完成对列车运行需求的控制。Linux[4]作为一款嵌入式操作系统,其内核精悍、源代码公开,便于裁剪和自定义,运行所需资源少,支持的开发工具种类多,查错也方便,能够满足列车网络系统软件开发需求,选择Linux作为TCMS操作系统。 2.1 嵌入式Linux内核的裁剪

Linux内核的裁剪及移植,主要是针对具体系统硬件加入或除去某些功能模块。本文基于Linux内核2.6.24版本,根据系统功能需求和CPU型号MPC8247支持等进行相关内核配置,去除对多媒体硬件、电源管理等的支持,对某些功能,如Network模块、SCC设备、I²C设备、USB设备、HUB模块等设置成可加载模块,内核实行动态加载。 2.2 ISaGRAF PRO Target 移植

由于TCMS系统控制对象较多、数据交互频繁、逻辑控制复杂,采用可编程控制语言进行顶层设计开发。采用ISaGRAF图形开发环境作为列车网络控制系统顶层开发平台。ISaGRAF PRO为主机环境下Soft PLC的应用开发实现了目标执行。对ISaGRAF PRO Target进行移植,主要包括:

(1)系统层:主要是完成基于目标板的设计。修改dsys0def.h文件,包括定义Target名字、字节序等,Target的定义与TDB里面的定义必须保持一致。修改dsys0ini.c,设置ISaGRAF工程路径。

(2)时钟管理:应用程序的时钟与目标板CPU的时钟保持一致。修改dsys0tim.c,定义系统时钟tick数,以便系统时钟能够准确读取。

(3)内存管理:修改dsys0spc.c文件,完成内存的初始化,创建、释放等。 (4)内核I/O管理:增加相关的I/O驱动接口,使之能够访问所定义的I/O设备。对_dummySplDvcIosWrite和_dummySplDvcIosRead函数的进行修改,增加RS485 I/O通信设备。修改isxsDrvsRegistration函数,加载ETCP、HSD、ISARSI驱动,支持应用程序通过以太网下载和实时调试。

2.3 建立交叉编译环境

在PC机建立一个用于目标机的交叉编译环境,用于裁剪和定制Linux,本设计采用开源工具Buildroot来制作交叉编译工具链。Buildroot可配置生成基于目标板的交叉编译工具链、内核映像以及根文件系统映像。 2.4 制作Bootloader

龙源期刊网 http://www.qikan.com.cn

引导程序Bootloader是系统内核运行之前运行的一段程序,负责初始化硬件、建立内存空间映射图,为调用操作系统内核做准备。将之前生成的操作系统内核映像以及根文件系统映像制作成Bootloader下载至目标板中。 3 ISaGRAF图形封装

ISaGRAF软件符合IEC 61131-3标准编程语言,包含顺序式功能图(SFC)、流程图(FC)、阶梯图(LD)、功能方块图(FBD)、结构化文字(ST)及指令集(IL)等自动化行业的六大程序设计语言,是一款功能强大的可编程开发工具[5]。

TCMS系统主要实现网络中顺序控制、逻辑控制等常用的控制算法与逻辑,并对这些算法与逻辑进行有效的封装,方便上层应用设计调用。逻辑层设计仅完成对调用的函数用C语言在其定义区实现其功能,通过ISaGRAF PRO调用其函数功能块或函数了。 4 TCMS与APU通信设计

公司已有列车网络控制系统(TCMS)和辅助控制单元(APU)等设备,通信协议完全符合TCMS编组拓扑图中的要求。以TCMS和APU之间RS485通信设计为例,阐述TCMS 系统RIOM1设备通过ISaGRAF图形软件获取APU数据的整个过程。 4.1 TCMS与APU通信方式及内容

列车网络控制系统(TCMS)与辅助控制单元(APU)之间的数据通信方式为RS485半双工方式,采用异步串行通信,通信速率为38.4kbps、1位起始位、8位数据位、1位停止位、偶校验方式。TCMS与APU之间的通信内容为SDR、SD、TDR、TD四种数据,数据帧结构具体内容说明如表1所示。 4.2 底层API函数编写

在本系统RIOM1设备中SIU单元模块提供6路RS485和2路RS232通信,使用接口函数initSerialLink()来完成基于HDLC的RS485通信初始化,具体函数定义如下: initSerialLink(char *portName, int protocol, int lineMode, int HDLCEncoding, int speed, int charLength, int stopBits, int parity)

其中*portName是指串行接口通道数,共8路,’’/dev/siuX” (X=1,···,8);int protocol是指通信协议,包括HDLC和UART;int lineMode是指传输介质,包括RS485和RS232;int HDLCEncoding是指HDLC编码方式,包括NRZ、NRZI、FM0、MANCHESTER和

DIFF_MANCHESTER五种编码方式,int speed是指通信速率;int charLength是指传输字节;int stopBits是指停止位;int parity是指奇偶校验位。

龙源期刊网 http://www.qikan.com.cn

二叉树(Binary Tree)是进程间通信(IPC)的一种方式。主要包括初始化二叉树、读二叉树、写二叉树共三个接口函数,对函数定义为: int bt_BT_init(void)//初始化二叉树;

int bt_get_arrays (unsigned char bus_id, unsigned char slv_id, unsigned short array_id, unsigned short nmb_of_arrays ,unsigned short *read_amount, unsigned short *buf)//读二叉树; int bt_put_arrays (unsigned char bus_id, unsigned char slv_id, unsigned short array_id, unsigned short nmb_of_arrays ,unsigned char array_size, unsigned short *buf)//写二叉树。 4.3 ISaGRAF功能模块编写

应用层ISaGRAF获取通过二叉树存储于buff中的值。

首先创建“写数组”的函数功能块WRBAR_SINT,参数描述如下:

WRBAR_SINT (BusID, Slv_Id, Array_Id, Write_Buff, Read_Amount,W_Out), 其中BusID, Slv_Id, Array_Id, Write_Buff, Read_Amount为输入,W_Out为输出,BusID为SINT类型,指modbus; Slv_Id,为SINT类型,指Node;Array_Id为UINT类型,指Byte array ID ;Write_Buff为BYTE_ARR类型,指写入数据;Read_Amount为USINT类型,指数据大小;W_Out为BOOL类型,FALSE表示写成功,TRUE表示写失败。 然后创建“读数组”的函数功能块RDBAR_SINT,参数描述如下:

RDBAR_SINT (BusID, Slv_Id, Array_Id, Array_Numb, Read_Amount, Read_Buff),

其中BusID, Slv_Id, Array_Id, Array_Numb为输入,Read_Amount, Read_Buff为输出,BusID为SINT类型,指modbus; Slv_Id,为SINT类型,指Node;Array_Id为UINT类型,指Byte array ID ;Array_Numb为USINT类型,指读数据大小;Read_Amount为USINT类型,指读成功取数据大小;Read_Buff为BYTE_ARR类型,指读取数据。

为了使ISaGRAF Target能够识别WRBAR_SINT、RDBAR_SINT函数接口函数, 接口函数的引入定义在pack.h中。按这种方法,把需要用到的列车网络控制相关功能进行封装,ISaGRAF就能准确识别。 5 TCMS与APU通信测试

龙源期刊网 http://www.qikan.com.cn

TCMS系统通过RIOM1设备RS485接口与APU装置相连,进行通信测试。为了更加直观的了解到TCMS与APU之间的SDR、SD、TDR和TD 4种通信数据交互情况,选用基于NI公司的图形化编程环境LabView,所配置的设备驱动为RS485,开发了一个上位机软件,监视TCMS与APU之间传输的4种数据。TCMS与APU通信测试结果如图2所示。

在图2中,TCMS发送至APU的SDR数据字节数为28,帧起始02H,控制数据20H,帧结束03H;APU发送至TCMS的SD数据字节数为38,帧起始02H,控制数据20H,帧结束03H;TCMS发送至APU的TDR数据字节数为6,帧起始02H,控制数据21H,帧结束03H;APU发送至TCMS的TD数据字节数为90,帧起始02H,控制数据21H,帧结束03H。 6 结语

本文介绍了列车网络控制系统(TCMS)的构成和编组拓扑,详细说明了TCMS系统开发的详细流程,包括操作系统移植,底层驱动及接口函数描述,ISaGRAF功能模块编写及调用。通过TCMS系统与APU设备进行联调试验,二者之间通信成功,最终验证了TCMS系统与APU通信设计开发的准确性、可操作性和稳定性。本文的不足之处在于TCMS系统只对APU一种设备进行通信联调实验,后续工作将完成TCMS系统与其他设备之间的通信实验。 参考文献

张曙光.CRH5型动车组[M].北京:中国铁道出版社,2008.

蒋静雯,陈文翔,罗小平.基于 TCN 的高速列车网络门控子系统设计[J]. 控制工程, 2014, 21(2):268-272.

IEC61375-3-1,Electric Railway Equipment -Train Bus-Part 1:Train Communication Network[S].Geneva:IEC,2007.

孙琼. 嵌入式Linux应用程序开发详解[M].北京:人民邮电出版社,2006.

IEC61131-3,Programmable Controllers-Part 3: Programming langugages [S].Virginia:National Electrical Manufacturers Association,2005.

因篇幅问题不能全部显示,请点此查看更多更全内容