调车计划传输代理程序的设计与实现
2016-02-16裴世廉
刘 雁,裴世廉
(沈阳铁路局 信息技术所, 沈阳 110001)
调车计划传输代理程序的设计与实现
刘 雁,裴世廉
(沈阳铁路局 信息技术所, 沈阳 110001)
调车计划传输代理程序可以读取调车作业通知单信息,根据定制格式转换处理,通过串口传输到驼峰自动化系统。本文介绍了应用开发背景、系统需求与具体实现。
调车计划传输;串口;格式转换
驼峰自动化系统可以提高驼峰作业效率、缩短列车解体时间,从而提高车站改编能力,在大型技术站、货运站广泛使用。车站管理信息系统的功能涵盖了列车到发、车辆调动、装卸作业、日常统计分析等运输生产和管理环节,覆盖到全路大部分车站,可以全面提高作业管理水平,减轻劳动强度,同时为铁路局的运输生产指挥提供原始的基础信息。
调车计划传输代理程序可以把车站管理信息系统中编制的调车作业通知单,根据现场作业需要,有选择地传输到驼峰自动化系统中,实现无缝衔接,避免驼峰作业人员人工输入带来的误差,减少计划核对时间,提高作业安全性。
1 开发背景
目前各铁路局推广使用的车站管理信息系统,程序版本有多个:铁路总公司开发的《铁路车站综合管理信息系统》,沈阳铁路局开发的《集中模式车站系统》,以及成都、兰州等铁路局自行研发的车站系统。驼峰自动化系统同样也存在多版本的情况,沈阳铁路局管内使用的驼峰自动化系统中,有FTK、DCD、TW-2等多种版本,即便是同一种接口模式,也会因为设备厂家、建设(或改建)年代不同,在数据接口模式、握手协议、关键字识别等细节有差别。随着驼峰自动化系统的逐步升级,接收调车计划的模式和数据格式仍然不断修改和完善。
调车计划数据传输时,要保证数据完整,并实现格式转换,能适应车站系统和驼峰自动化系统之间的传输协议、数据格式的差别,保证传输的及时性、可靠性、稳定性,界面简洁、操作简单。在满足车站既有现场作业的基础上,要充分考虑车站系统、驼峰系统的后续版本兼容性。
2 系统需求
驼峰自动化系统通过串口与外部系统交换数据,如接收调车计划、发送计划执行进度等,一般在两个场所实现物理连接:(1)在驼峰楼,与操作台的工控机串口连接,目前,TW-2驼峰多采用该方式;(2)在驼峰自动化机械室,驼峰自动化系统与主机连接,早期建设的FTK驼峰多采用该方式。
由于物理连接位置不同,导致通信线路距离、数据传输质量、防雷设施等方面的标准不同,在硬件选择和物理连接方式方面存在差异:(1)微机串口直连。如果车站系统在驼峰楼设置微机操作,驼峰自动化系统通过操作台工控机接收调车计划,就可以使用该微机串口通信,由驼峰值班员编制调车计划直接传输,或者作为数据通信前置机,传输解编助调、区长等岗位人员编制的计划。微机直连时一般使用光电隔离模块加以保护。(2)考虑使用协议转换器、专线调制解调器、基带数传机等硬件,延长串口通讯的传输距离。(3)可以使用串口服务器,通过网络传输。由于通信线路在物理连接方式不同,与硬件相关联的串口参数设置不尽相同,甚至在不同车站、不同作业地点都会有差异。
车站操作用户,希望把操作和显示都集成在车站系统中,在计划传输过程中不需要切换程序界面,只需要简单操作,就可以及时、迅速、准确地完成计划传输,并可以查询是否传输成功。
开发维护人员,希望提供方便的调试、监控手段。当设备故障或传输错误时,可以查看各设备和程序的运行状况,查看不同系统之间的数据传输内容、检查传输日志,以便定位故障点、分析原因,从而快速方便地排除故障、解决问题,把故障影响降到最低。
驼峰自动化系统版本、厂家不同,造成了数据传输内容和格式的差异:(1)有些车站要求调车通知单的计划号必须是“1位字符+3位数字”的格式,否则在驼峰自动化系统不能正确识别,接收后续计划时,会覆盖已经接收的尚未执行的计划;(2)每钩甩挂车数不得超过64辆,这会影响编组辆数超过该限定值的列车解体计划接收(可能会出现丢钩、甩挂辆数不正确等现象),而长编组列车已经广泛运行在干线上;(3)解体列车车次长度不得超过5位字符(有的系统则放宽到12位)、车次是否允许包含汉字,左右对齐方式、车次首尾是否需要空格补位等。
为了应对这些繁琐、细微的差别,使用参数文件来定制切合车站现场实际情况的参数配置。调车计划传输程序可以解析参数设置,配置软硬件环境、握手方式、传输内容,根据参数转换数据格式,把调车计划中的特殊备注内容(如空车、禁溜、禁峰、大轴、上峰、下峰等)翻译成驼峰自动化系统能够识别的特定格式,提供特殊股道(如禁溜线)对照转换。配置文件要方便灵活、内容简单明了,使用文本编辑软件(如记事本)可以编辑修改。
调车计划传输程序要适应多种接口,使用方便,尽量减少手工操作或者不需要操作,界面显示直观;要适合运行于Windows XP / 7 / 8等操作系统;要方便部署,尽可能不依赖第三方软件;要方便日常维护,有丰富的传输数据监控显示、日志记录功能,出现问题或发生故障时有据可查,不需要其它专业技能和工具软件。
3 程序设计与实现
3.1 传输任务
程序可以定时读取传输任务,不需要人工干预,主要有两种模式实现:(1)读取指定目录下的文件,如果文件的生成时间在1 h之内,视为待传输计划,传输完成后,留存到备份目录;否则视为过期文件,直接把文件抛弃到过期文件目录中。《铁路车站综合管理信息系统》提供调车计划的PCS传输功能,计划为纯文本文件方式,FTP传输到驼峰前置机中。驼峰前置机安装程序,把计划传输到驼峰自动化系统中。(2)定时查询数据库中是否有计划传输请求,以1 h为限,早于1 h的记录视为无效,直接丢弃。
用户手工查询指定岗位(或全站)的调车计划,程序根据计划是否已经执行,以不同颜色区分显示,然后手工选择调车计划,向驼峰自动化系统中传输,如图1所示。
图1 调车计划显示界面
3.2 调车计划载入
程序有两种方式载入调车计划内容:(1)在指定目录下发现纯文本文件后,直接读取文件内容,根据参数文件中定义的关键字来识别车次、计划号、作业项目,按数据项的起止位置,解析调车计划的内容。《铁路车站综合管理信息系统》提供调车计划传输功能,可以把计划形成纯文本文件,传输到驼峰前置机;《集中模式车站系统》可以把计划落地成本地文件。由于不同车站系统生成文件的编码格式不同,解析文件时需要自动判定文件编码格式是ANSI、Unicode或UTF-8字符集。(2)根据文件名解析出计划号,或者从数据库中获取计划ID值,然后从数据库中读取计划。
为了方便程序安装,推荐数据库连接访问方式为:(1)ADO访问数据库。使用《铁路车站综合管理信息系统》的车站,一般都在微机上安装Oracle客户端。(2)ODAC访问数据库。《集中模式车站系统》直接使用IE浏览器操作,客户端只需要安装fash插件。
3.3 数据格式转换
为适应不同版本的驼峰自动化接口模式,分别建立TW-2、DCD、FTK转换类,生成握手请求、识别应答内容,实现转换数据格式等功能。数据格式转换类如图2所示。
图2 数据格式转换类
为了方便现场实施,数据的传输模式、转换规则都写在参数文件中,可以随时修改。在参数文件中,与格式转换相关的内容主要如下。
3.3.1 格式设置
传输格式 = TW-2 ;【TW-2】、TW、DCD、FTK
续行符 = 0D,0A ;16 进制数,缺省为【0D,0A】
调车场股道起止 = SB1,SB99
编组场 =
挂车= +,#
甩车 = -,~
车次允许汉字 = y
标车号辆数 = 5 ;摘挂辆数达到该值时,显示开口车号
备注忽略 = 空线,空重,重空
目录 =计划:{JHH#4}号
目录 =解体车次:{CC#12#右}
目录 =---------
#正文说明 {#字段名#长度#左、中、右对齐#字段超长舍弃前部或后部#}
正文 ={#SWH#2#右} {#GDM#4#右#前}{#ZG BZ#1}{#CS#2#右}{#KZBZ#1#左} {#JSL#12#左} {#CH#7#左}
目录 =*********
目录 =区长:{#QZ#0#左} 调车长:{#DCZ#0#左}
目录 =编制时间:{#BZSJ#0#左}
3.3.2 股道转换
# 股道转换(禁溜线、迂回线等)= 原股道码 @转换后股道码 @ 特定连挂方式
禁溜线 = SB77 @ J01
禁溜线 = SB88 @ J02
3.3.3 备注转换
# 备注转换 = 内容 @ 需要转换为新股道 @ 连挂方式 @ 特定标识 @ 场别
# 限速 = ⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,限速,窜,X @ @ @ @ X
限速 = ⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,限速,窜,X @ @ @ !
禁峰 = 迂,U,YH,禁峰,JF @ @ # @ @ YH
禁溜 = 禁,$,∏,JL,送,大轴,△ @ @ #
上峰 = 上峰 @ @ S
下峰 = 下峰 @ @ X
空车 = 空 @ @ @ K
手动 = 手 @ @ D
3.3.4 备注转换FTK
禁峰 = 迂,U,YH,禁峰,JF @ @ @ A
禁溜 = 禁,$,∏,JL,送,大轴,(O)△ @ @ @ B空车 = P,C,N,G,空 @ @ @ G
程序读取参数文件时,根据驼峰自动化接口模式,实例化对应的类,解析数据转换规则。转换每钩计划内容时,先判断甩挂车股道,是否属于本场编组股道、禁溜线、迂回线,如果是,过滤“备注忽略”中定义的敏感字词,避免转换记事栏内容,与转换关键字冲突,造成误判;根据规则转换数据内容。每项调车钩转换完成后,再根据目录、正文格式设置,以及换行符定义,重新编码数据、计算校验码,形成传输文本内容。
3.4 传输数据显示
(1)调车计划显示。如图3所示,程序解析/读取待传输计划后,会在“内容显示”页面右边显示计划内容,便于作业人员核对计划。手工查询时,会在左边刷新显示计划列表。
图3 调试信息页面
(2)调试信息显示。传输计划时,会在“调试信息”标签页中显示传输的内容。左边显示发送请求、应答消息;右边显示格式转换后的计划内容,以纯文本、16进制两种方式显示。这样可以方便程序调试,发生故障时,现场操作员可以简要描述程序显示的内容,有利于分析故障原因。
3.5 设定串口参数
串口数据传输受通讯线路质量的影响比较大,一般波特率采取9 600 bps,如果线路质量不良,需要适当降速。如果是电缆传输,要考虑是否会受到冬季、雨季的影响;还要采取防雷措施、安装串口卡,避免微机主板雷击损坏。要有良好的接地线措施,减少传输过程中的误码。参数文件中与串口设置相关的内容主要有:
[传输设置]
端口 = COM2
波特率 = 9600
奇偶校验 = 0 ;【0无校验】、1奇校验,2偶校验
数据位 = 8 ;4 - 【8】
停止位= 0 ;【0】,1,2分别对应 1,1.5,2停止位
流控制 = 0 ;【0】无
超时 = 500 ;毫秒数
4 软件开发
4.1 使用工具软件
常用的调试工具有:
(1)串口调试助手,支持300~115 200 bps波特率,以ASCII或16进制码方式发送文本或接收显示。在开发调试过程中,有两个缺点:a.只能使用串口COM1~COM4,如果使用串口卡,串口个数可能会受限,需要手工修改串口名;b.显示串口接收数据时,汉字在纯文本方式显示接收内容时会有问题,16进制显示则没有问题。
(2)虚拟串口软件,如VSOD,可以成对增加虚拟串口,这两个串口可以连接起来,实现通讯,弥补微机、笔记本串口数量少(或者没有串口)的问题。
4.2 同步编制模拟调试程序
预先编制模拟调试程序,模拟驼峰自动化系统数据接收过程。通过“程序桩”来显示串口传输的请求应答、业务数据、校验反馈等数据传输各阶段的数据内容,同时以16进制、纯文本方式显示,实现“透明”传输,方便数据核对、利于程序调试与故障排除。纯文本虽然可以方便查看,但是一些非可视字符无法正常显示,而以16进制显示方式不存在问题。
5 结束语
调车计划传输代理程序已经在沈阳铁路局管内十几个编组站、区段站投入使用,实现了调车作业通知单向驼峰自动化系统传输,取代了驼峰作业人员的手工输入,保证了计划数据传输的正确性、及时性,避免了二次输入带来的误差,保证了驼峰作业的安全,有效减轻了驼峰操作人员的劳动强度。
[1]杜志远,赵凤锦,丁 昆,等.驼峰自动集中微机储存与控制系统[J].铁道学报,1990(3):86-91.
[2]钟卫红.编组站综合自动化驼峰控制系统的研究[J].铁路通信信号工程技术,2008(3):15-18.
责任编辑 陈 蓉
Shunting plan transfer agent program
LIU Yan,PEI Shilian
( Institute of Information Technology,Shenyang Railway Administration,Shenyang 110001,China)
Shunting plan transfer agent program can read the information of shunting operation notice,make conversion processes according to the custom format.The information is transmitted through the serial port to the hump automation system.This article introduced the background of application development,system requirements,and concrete implementation.
shunting plan transfer;serial port;format conversion
U292.12:TP39
A
1005-8451(2016)08-0036-04
2015-12-25
刘 雁,高级工程师;裴世廉,高级工程师。