基于ARM9的机场应急救援拖车同步控制研究
2012-07-31张积洪周同旭
张积洪,周同旭
(中国民航大学航空自动化学院,天津 300300)
航空器因许多不确定的原因在机场及其周边丧失其机动性,一旦出现航空器事故或残损航空器停在机场某一区域,会妨碍其他航空器的运行,甚至迫使机场实施关闭。因此,迅速将其搬移出妨碍机场开放的地方,这对旅行公众、其他运营者、机场当局以及驻场机构很重要。同时,应尽快利用搬移拖车将事故航空器在最短时间内搬移到不妨碍机场开放的安全区,减少机场关闭时间,提高机场使用率。
机场应急救援拖车是航空器应急救援的重要设备之一,在保障飞机安全拖离事故现场的应用中,起到举足轻重的作用,在其搬运残损航空器时,各个拖车应同步转向,以减小对设备的应力损坏。本文采用ARM9和PLC为核心,通过采集安装在机场应急救援拖车转向机构的角度传感器数据,实现对组合机场应急救援拖车的同步控制。本文主要对该系统的软件程序进行了编写设计及探讨了相应测试方法。
1 系统的转向原理与实现方法
1.1 组合式机场应急救援拖车转向原理
在搬运残损航空器时,根据其起落架损坏程度,分为前起落架或者主起落架一侧损坏、主起落架全部损坏、前起落架和单个主起落架同时损坏和起落架全部损坏,因此,根据实际工况,有图1三种组合方式。
为了减小组合式机场应急救援拖车转向时产生的路面对其行驶的附加阻力和轮胎过快磨损,要求转向系能保证在车辆转向时,所有车轮均作为纯滚动而不产生侧向滑移,将两台拖车看成一个整体,显然,这只有在所有车轮的轴线都交于一点O0(O0称为转动中心)方能实现,本文采用两车平行连接进行分析,建立坐标系,如图2所示。
设第一台救援拖车的左侧第一个轮子的坐标为(x1,y1),车轮转角 α1、第二台拖车的轮子的坐标为(x2,y2),车轮转角 α2,转动中心 O0的坐标为(x0,y0),轴距和宽分别为l和b,则α1、α2的运算关系为
由式(1)、式(2)可得
1.2 系统的实现方法
本系统为主从式结构,上位机以S3C2440ARM9控制器为核心,移植Linux系统和QT/Embedded图形库,主要实现多台救援拖车位置关系的处理、救援拖车转向角度的显示、手动控制等人机交互功能。下位机以SIEMENS的SIMATIC S7-200PLC控制器为核心,电液比例阀为运动控制器,实现协同转向控制功能。上下位机通过RS485总线通信。
1.3 系统实现的功能
1)通过操纵盒控制多台救援拖车协同转向和复位功能;
2)实时显示采集到的角度传感器数据、转向状态和系统出错报警。
2 系统的程序设计
2.1 上位机程序的设计
2.1.1 利用QT/E多线程实现角度传感器的同步采集
QT/E是Trolltech公司开发的面向嵌入式系统的QT版本,其控件丰富,并且支持虚拟帧缓冲。QT/E提供了一个与平台独立的线程类实现对多线程的支持,并且提供了线程安全的事件传递方式,QT/E将与线程相关的函数封装为标准的C++类库,使嵌入式系统多线程程序设计更加灵活和方便。线程Qthread使用start方法调用从 run()函数开始执行,Qmutex、Qread WriteLock、Qsemaphore以及QwaitCondition类保证线程可以同步的运行,部分程序如下:
2.1.2 GUI的设计
使用QT/E命令来编辑系统的GUI会浪费很多精力,如果使用QT Designer可以提高开发效率,它可以通过设计把相应的部件布置到显示页面上,使用系统中的信号与槽机制让程序自动运行。
根据系统的要求,GUI如图3所示。通过该界面可以实现输入救援车坐标、控制救援车转向、实现对数据实时查询、与下位机通信等功能。数字键用于输入救援拖车的坐标,完成后SetFinish键即可启动上位机对下位机的控制,Left键、Right键、Reset键分别控制组合救援拖车的左转、右转和复位功能,同时在1Angel和2Angel中显示被控的两台救援拖车的转向角度。使用 QT/E 的 QLineEdit、QLabel、QPushButton 等控件可以方便地实现这些功能。
2.1.3 Linux平台下串行口通讯
Linux所的设备文件都放在“/dev”目录下,因此串
口对应的设备文件的路径是“/dev/s3c2410_serial2”和“/dev/s3c2410_serial3”,配置的过程如下
在完成串口配置后,可调用read/write函数来读写串口:
2.2 系统的通讯协议
2.2.1 角度传感器与上位机的串行通信协议
采用波特率为9 600 bit/s的半双工传输,帧格式为串口9位方式,一个起始位,八个数据位,一个奇偶校验位,一个停止位,偶校验。数据格式:共6字节,如下:
数据含义:第一字节为起始标志0xAA,第二、第三字节为数据位的高字节和低字节,第四字节、第五字节为取反的数据位高字节和低字节,第六字节为结束字节0xFF。
若输出的角度值为345.27,则其乘100后为34 527,其十六进制为0x86DF,按位取反后:0x7920,那么数据帧的组成如下
2.2.2 上位机与下位机串行通信协议
下位机S7-200 CPU在RUN模式下,通信接口设置为通讯协议完全由用户程序控制的自由口通讯模式,使用SMB30定义通讯口工作模式,如表1所示。
表1 自由口工作模式Tab.1 Freedom port working mode
通过设置SMB87、SMB94可以实现接收数据和最大字符数,在本文中,设置如下:
上下位机数据格式:共8字节,如下:
数据含义:第一字节为起始标志0xBB,第二、第三字节选择被控分机和取反字节,第四、第五字节为数据位的高字节和低字节,第六字节、第七字节为取反的数据位高字节和低字节,第八字节为结束字节0xEE。
被控分机得到主机传入的数据后,将数据装入脉冲口,实现变频脉冲输出。
2.2.3 利用PWM控制电液比例阀
脉冲宽度调制功能提供连续、占空比可调的脉冲输出,提供用户控制周期和脉冲宽度。此功能常被用作实际控制量输出,通过调节其占空比和周期方可便地控制线圈的开合时间和频率。本文利用它来控制电液比例阀实现两台救援拖车协同作业。
3 系统测试结果分析
模型连接如图4所示。
测量模型各尺寸为:车轴距l=0.6 m,车宽b=0.36 m,第一台车的坐标为(0,0),第二台车的坐标为(0,0.3),单位:m,则由式(3)可得
理论角度 α1、理论角度 α2、实测角度 α1、实测角度α2、误差角度σ如表2所示。
表2 试验结果Tab.2 Results of test
本系统采用与实物1∶7.5的模型作为试验,连接各模型和控制系统后,实测数据。由表2可知,实测数据与理论数据误差在0.3°以内,符合设计要求。
4 结语
本文介绍了一种基于ARM9的机场应急救援拖车电气同步控制系统。通过输入两台机场应急救援拖车坐标的方法来确定转向关系,适用于不同工况下的飞机应急拖救;采用QT/E多线程的方法实现了对两个角度传感器的数据同步采集和处理,提高了效率,缩小了系统误差;将程序移植到系统后,经测试其值与理论值误差在0.3°以内,满足系统的要求。
[1] 吴克强,吴政清,姜斯平.汽车构造[M].上海:上海科学技术出版社,2003:327-354.
[2] 许晓东,李秀娟,纪赖恩.多线程技术在粮库监控管理系统中的应用[J].微计算机信息,2010,26(7-2):84-85.
[3] 陈旭红,高文学.Qt_Embedded串口类的设计及应用[J].湖北汽车工业学院学报,2010,24(4):51-53.
[4] 丁林松,黄丽琴.Qt4图形设计与嵌入式开发[M].北京:人民邮电出版社,2009:327-343.
[5] 黄宇东,陈耀明,陈 安.基于Qt的多线程技术应用与研究[J].软件导刊,2009,8(10):40-42.
[6] 张修如,袁晓红.PC与S7-200 PLC自由通信协议的研究[J].湖南工业职业技术学院学报,2004,4(3):16-17.