本申请涉及铁路车流分析技术领域,尤其涉及铁路实时车流推算方法及装置。
背景技术:
运输信息集成平台通过整合列车、车辆、货物、机车、机车乘务员等信息,建立集中统一的列车、货车、货物、机车、机车乘务员信息共享库,并提供公用服务、数据支持功能。通过运输信息集成平台可以实现与现有各应用系统之间的信息交互、共享和访问等信息共享要求。
当车辆的状态发生变化时,车站应将变化信息以标准格式进行记录,并上传给铁路局及总公司,这些状态变化信息构成车辆状态报告,或简称为车辆报告。
在2013年,铁路总公司及时启动了运输信息集成平台的建设,其目的是采集分布在不同铁路应用系统中的列车、车辆、机车、乘务员和货物数据,实现数据集中管理,以便于实时掌握铁路现场作业和进行更加有效的调度决策。
铁路运输信息集成平台采用“一点采集、两级建库”方式,建立基于“事件报告”的数据采集机制,将车辆、货物、列车、机车、机车乘务员等信息构成有机整体。铁路运输信息集成平台主要通过车站上报报告的方式实现数据更新。
第一期运输信息集成平台建设中,总公司级运输信息平台需采集如表1所示的15类车辆报告。
表1
这15类报告中,参与号码制车流推算使用前面10类报告。这些报告的数据格式各不相同,有些报告还可继续细分。
装车报告和卸车报告根据装卸作业进度,还可细分为4个状态时间。每个状态完成时都要发送相应报告。这4个状态时间为:
1)入线时间:指车辆已经送入车站货场的时间,可以进行装卸作业。
2)开始时间:指车辆开始装车或卸车作业的时间。
3)完成时间:指车辆装车或卸车完毕的时间,此时车辆空重状态发生变化。
4)出线时间:指车辆已经从车站货场取出送到车站的时间,可以随时挂运列车出发。
以往车流推算方法,总公司使用各铁路局的上报的推算信息进行推算。上报信息是铁路局的推算信息,并不能精确到具体车辆。
在运输信息集成平台建成前,尚未发现使用车辆状态报告进行车流推算的相关研究。
技术实现要素:
本申请实施例提供铁路实时车流推算方法及装置,以实现基于车辆的实时车流推算。
本申请的技术方案是这样实现的:
一种铁路实时车流推算方法,该方法包括:
从铁路运输信息集成平台上实时接收车辆状态报告;
将该车辆状态报告复制一份,将一份车辆状态报告放入推算报告历史库,根据另一份车辆状态报告的类型进行对应的车流推算。
当所述车辆状态报告为列车出发报告;
所述进行对应的车流推算包括:
a、读取列车出发报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告为列车到达报告;
所述进行对应的车流推算包括:
a、读取列车到达报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g;
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,执行步骤e;
d、将该空车加入到本列车到站的空车队列,返回步骤b;
e、判断该重车的到站是否与本列车的到站相同,若是,执行步骤f;否则,执行步骤g;
f、执行车辆终到推算,执行完毕,返回步骤b;
g、将本列车的到站作为该重车的当前站,根据本列车在当前站的到站时间,计算该重车在当前站的编组时间,根据该重车在当前站的编组时间计算列车在当前站的出发时间,执行车辆径路推算,得到该重车的当前站与该重车的到站之间的径路,执行车辆在车站到发时间推算,得到该重车在当前站与该重车的到站之间途径各站的时间,计算完毕,返回步骤b。
当所述车辆状态报告为列车解体报告;
所述进行对应的车流推算包括:
读取列车解体报告的报告头中的列车解体完成时间;
执行列车编组完成时间推算:列车编组完成时间=列车解体完成时间+预设的列车集结时长+预设的编组作业时长;
执行列车出发时间推算:列车出发时间=列车编组完成时间+预设的列车待发时长;
对于列车编组中的每一车辆,执行车辆径路推算,得到车辆在发站、到站之间的径路,执行车辆在车站到发时间推算,得到车辆途径发站、到站之间各站的时间。
当所述车辆状态报告为列车编组报告;
所述进行对应的车流推算包括:
a、根据列车编组报告中的列车编组完成时间,推算列车出发时间=列车编组完成时间+预设的列车待发时长,确定列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告为列车解保留报告;
所述进行对应的车流推算包括:
a、将列车解保留车站视为列车发站,确定列车车次、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告为车辆装车报告;
所述进行对应的车流推算包括:
a、判断该车辆装车报告的装车信息中是否包含出线时间,若是,执行步骤g;否则,执行步骤b;
b、判断该车辆装车报告的装车信息中是否包含装完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆装车报告的装车信息中是否包含开装时间,若是,执行步骤e;否则,执行步骤d;
d、执行开装时间推算:开装时间=车辆装车报告的装车信息中的入线时间+预设的装车等待时长;
e、执行装完时间推算:装完时间=开装时间+预设的装车作业时长;
f、执行出线时间推算:出线时间=装完时间+预设的出线等待时长;
g、执行出发时间推算:出发时间=出线时间+预设的出发等待时长。
h、根据车辆装车报告的报告头中的发站、到站和货物品类,将发站作为车辆径路推算的起点站,将到站作为车辆径路推算的终点站,执行车辆径路推算,推算完毕,将车辆的发站作为参与车辆在车站到发时间推算的起点站,将车辆的到站作为参与车辆在车站到发时间推算的终点站,执行车辆在车站到发时间推算。
当所述车辆状态报告为车辆卸车报告;
所述进行对应的车流推算包括:
a、判断该车辆卸车报告的卸车信息中是否包含出线时间,若是,本流程结束;否则,执行步骤b;
b、判断该车辆卸车报告的卸车信息中是否包含卸完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆卸车报告的卸车信息中是否包含开卸时间,若是,执行步骤e;否则,执行步骤d;
d、执行开卸时间推算:开卸时间=车辆卸车报告的卸车信息中的入线时间+预设的卸车等待时长;
e、执行卸完时间推算:卸完时间=开卸时间+预设的卸车作业时长,在卸完时间到达时,执行步骤f;
f、将车辆的状态由重车改为空车,将车辆加入空车队列。
所述执行车辆径路推算包括:
a、确定参与车辆径路计算的起点站、终点站和货物品类;
b、在车辆径路参数表中,查找参与车辆径路推算的起点站、终点站和货物品类对应的经由支点站信息,判断是否查找到,若是,直接读取车辆径路参数表中的对应经由中间车站和站间里程信息;否则,根据起点站、终点站、货物品类调用径路计算模块计算对应的经由中间车站和站间里程信息。
所述执行车辆在车站到发时间推算包括:
a、确定参与车辆在车站到发时间推算的起点站和终点站,将所述起点站作为车辆的当前站;
b、判断是否能从车辆状态报告获取车辆在当前站的出发时间,若是,执行步骤g;否则,执行步骤c;
c、从车辆状态报告获取车辆在当前站的到达时间;
d、判断当前站是否具有预设的车辆在车站的停留时长,若是,执行步骤e;否则,执行步骤f;
e、根据车辆在当前站的到达时间、预设的车辆在车站的停留时长,计算车辆在当前站的出发时间,转至步骤g;
f、计算车辆在当前站出发时间=车辆在当前站到达时间;
g、判断当前站是否为车辆到站,若是,执行车辆终到推算,本流程结束;否则,根据车辆径路推算结果中的车辆在当前站与下一站间的里程,以及预设的车辆平均运行速度,计算车辆在当前站与下一站间的运行时长,计算车辆在下一站的到达时间=车辆在当前站的出发时间+车辆在当前站与下一站间的运行时长,将下一站作为新的当前站,返回步骤b。
所述执行车辆终到推算包括:
a、确定车辆到站时间;
b、根据车辆状态报告中的编组信息,判断该车辆是否为空车,若是,执行步骤d;否则,执行步骤c;
c、执行车辆入线时间推算:车辆入线时间=车辆到站时间+预设的车辆入线等待时长;执行车辆开卸时间推算:车辆开卸时间=车辆入线时间+预设的车辆卸车等待时长;执行车辆卸空时间推算:车辆卸空时间=车辆开卸时间+预设的卸车作业时长;当该车辆卸空后,将该车辆的状态变更为空车;
d、将该空车加入到本站的待用空车队列。
一种铁路实时车流推算装置,该装置包括:
车辆状态报告接收模块:从铁路运输信息集成平台上实时接收车辆状态报告;
车辆状态报告处理模块:将车辆状态报告接收模块接收的车辆状态报告复制一份,将一份车辆状态报告放入推算报告历史库,根据另一份车辆状态报告的类型进行对应的车流推算。
当所述车辆状态报告接收模块接收的车辆状态报告为列车出发报告,
所述车辆状态报告处理模块进行对应的车流推算包括:
a、读取列车出发报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告接收模块接收的车辆状态报告为列车到达报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
a、读取列车到达报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g;
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,执行步骤e;
d、将该空车加入到本列车到站的空车队列,返回步骤b;
e、判断该重车的到站是否与本列车的到站相同,若是,执行步骤f;否则,执行步骤g;
f、执行车辆终到推算,执行完毕,返回步骤b;
g、将本列车的到站作为该重车的当前站,根据本列车在当前站的到站时间,计算该重车在当前站的编组时间,根据该重车在当前站的编组时间计算列车在当前站的出发时间,执行车辆径路推算,得到该重车的当前站与该重车的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该重车在当前站与该重车的到站之间途径各站的时间,计算完毕,返回步骤b。
当所述车辆状态报告接收模块接收的车辆状态报告为列车解体报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
读取列车解体报告的报告头中的列车解体完成时间;
执行列车编组完成时间推算:列车编组完成时间=列车解体完成时间+预设的列车集结时长+预设的编组作业时长;
执行列车出发时间推算:列车出发时间=列车编组完成时间+预设的列车待发时长;
对于列车编组中的每一车辆,执行车辆径路推算,得到车辆在发站、到站之间的径路,执行车辆在车站到发时间推算,得到车辆途径发站、到站之间各站的时间。
当所述车辆状态报告接收模块接收的车辆状态报告为列车编组报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
a、根据列车编组报告中的列车编组完成时间,推算列车出发时间=列车编组完成时间+预设的列车待发时长,确定列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告接收模块接收的车辆状态报告为列车解保留报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
a、将列车解保留车站视为列车发站,确定列车车次、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
当所述车辆状态报告接收模块接收的车辆状态报告为车辆装车报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
a、判断该车辆装车报告的装车信息中是否包含出线时间,若是,执行步骤g;否则,执行步骤b;
b、判断该车辆装车报告的装车信息中是否包含装完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆装车报告的装车信息中是否包含开装时间,若是,执行步骤e;否则,执行步骤d;
d、执行开装时间推算:开装时间=车辆装车报告的装车信息中的入线时间+预设的装车等待时长;
e、执行装完时间推算:装完时间=开装时间+预设的装车作业时长;
f、执行出线时间推算:出线时间=装完时间+预设的出线等待时长;
g、执行出发时间推算:出发时间=出线时间+预设的出发等待时长。
h、根据车辆装车报告的报告头中的发站、到站和货物品类,将发站作为车辆径路推算的起点站,将到站作为车辆径路推算的终点站,执行车辆径路推算,推算完毕,将车辆的发站作为参与车辆在车站到发时间推算的起点站,将车辆的到站作为参与车辆在车站到发时间推算的终点站,执行车辆在车站到发时间推算。
当所述车辆状态报告接收模块接收的车辆状态报告为车辆卸车报告;
所述车辆状态报告处理模块进行对应的车流推算包括:
a、判断该车辆卸车报告的卸车信息中是否包含出线时间,若是,本流程结束;否则,执行步骤b;
b、判断该车辆卸车报告的卸车信息中是否包含卸完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆卸车报告的卸车信息中是否包含开卸时间,若是,执行步骤e;否则,执行步骤d;
d、执行开卸时间推算:开卸时间=车辆卸车报告的卸车信息中的入线时间+预设的卸车等待时长;
e、执行卸完时间推算:卸完时间=开卸时间+预设的卸车作业时长,在卸完时间到达时,执行步骤f;
f、将车辆的状态由重车改为空车,将车辆加入空车队列。
所述车辆状态报告处理模块执行车辆径路推算包括:
a、确定参与车辆径路计算的起点站、终点站和货物品类;
b、在车辆径路参数表中,查找参与车辆径路推算的起点站、终点站和货物品类对应的经由支点站信息,判断是否查找到,若是,直接读取车辆径路参数表中的对应经由中间车站和站间里程信息;否则,根据起点站、终点站、货物品类调用径路计算模块计算对应的经由中间车站和站间里程信息。
所述车辆状态报告处理模块执行车辆在车站到发时间推算包括:
a、确定参与车辆在车站到发时间推算的起点站和终点站,将所述起点站作为车辆的当前站;
b、判断是否能从车辆状态报告获取车辆在当前站的出发时间,若是,执行步骤g;否则,执行步骤c;
c、从车辆状态报告获取车辆在当前站的到达时间;
d、判断当前站是否具有预设的车辆在车站的停留时长,若是,执行步骤e;否则,执行步骤f;
e、根据车辆在当前站的到达时间、预设的车辆在车站的停留时长,计算车辆在当前站的出发时间,转至步骤g;
f、计算车辆在当前站出发时间=车辆在当前站到达时间;
g、判断当前站是否为车辆到站,若是,执行车辆终到推算,本流程结束;否则,根据车辆径路推算结果中的车辆在当前站与下一站间的里程,以及预设的车辆平均运行速度,计算车辆在当前站与下一站间的运行时长,计算车辆在下一站的到达时间=车辆在当前站的出发时间+车辆在当前站与下一站间的运行时长,将下一站作为新的当前站,返回步骤b。
所述车辆状态报告处理模块执行车辆终到推算包括:
a、确定车辆到站时间;
b、根据车辆状态报告中的编组信息,判断该车辆是否为空车,若是,执行步骤d;否则,执行步骤c;
c、执行车辆入线时间推算:车辆入线时间=车辆到站时间+预设的车辆入线等待时长;执行车辆开卸时间推算:车辆开卸时间=车辆入线时间+预设的车辆卸车等待时长;执行车辆卸空时间推算:车辆卸空时间=车辆开卸时间+预设的卸车作业时长;当该车辆卸空后,将该车辆的状态变更为空车;
d、将该空车加入到本站的待用空车队列。
可见,本申请实施例实现了基于车辆的实时车流推算。
附图说明
图1为本申请实施例提供的铁路实时车流推算方法流程图;
图2为本申请实施例提供的从铁路运输信息集成平台上实时接收车辆状态报告的方法流程图;
图3为本申请实施例提供的根据列车出发报告进行车流推算的方法流程图;
图4为本申请实施例提供的根据列车到达报告进行车流推算的方法流程图;
图5为本申请实施例提供的车辆径路推算的方法流程图;
图6为本申请实施例提供的车辆在车站到发时间推算的方法流程图;
图7为本申请实施例提供的车辆终到推算方法流程图;
图8为本申请实施例提供的根据列车解体报告进行车流推算的方法流程图;
图9为本申请实施例提供的根据车辆装车报告进行车流推算的方法流程图;
图10为本申请实施例提供的根据车辆卸车报告进行车流推算的方法流程图;
图11为本申请实施例提供的铁路实时车流推算装置的组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本申请实施例提供的铁路实时车流推算方法流程图,其具体步骤如下:
步骤101:从铁路运输信息集成平台上实时接收车辆状态报告。
步骤102:判断接收到的该车辆状态报告是否满足预设推算要求,若是,执行步骤104;否则,执行步骤103。
预设推算要求包括:符合预定义的车辆状态报告的标准格式等,当车辆状态报告不符合预定义的车辆状态报告的标准格式时,认为该车辆状态报告不满足预设推算要求。
步骤103:将该车辆状态报告放入错误报告表,本流程结束。
步骤104:将该车辆状态报告复制一份,将复制的车辆状态报告放入推算报告历史库。
步骤105:使用该车辆状态报告进行车流推算,记录推算结果。
上述流程描述的是对车辆状态报告进行推算的总体流程,以下给出该流程中各个步骤的具体实现:
图2为本申请实施例提供的从铁路运输信息集成平台上实时接收车辆状态报告的方法流程图,其具体步骤如下:
步骤201:访问运输信息集成平台的用于存储车辆状态报告的mq(messagequeue,消息队列)。
车辆状态报告从车站采集后,以mq方式传输并保存到铁路总公司的运输信息集成平台。
步骤202:依次读取mq队列中的车辆状态报告,对于每个车辆状态报告执行步骤203~206。
在访问mq时,若mq为空,则继续等待,直到mq队列中有报告数据时,执行步骤202。
步骤203:解析报告内容,确定报告类别。
步骤204:根据预定义的该类报告的标准格式,确定读取的该报告的内容是否正确,若是,执行步骤206;否则,执行步骤205。
步骤205:将该报告附上错误编码后放入错误报告表,返回步骤202。
步骤206:将该报告复制一份,将一份报告放入推算报告历史库,根据另一份报告进行车流推算,返回步骤202。
以下给出各类车辆状态报告对应的车流推算方案。
图3为本申请实施例提供的根据列车出发报告进行车流推算的方法流程图,其具体步骤如下:
步骤301:读取列车出发报告的报告头,读取报告头中的列车车次、发站、到站、编组等信息。
步骤302:判断编组内容是否为空,若是,则确认列车为单机列车,不进行车流推算,本流程结束;否则,执行步骤303。
编组内容包含了:编组的各车辆的标识、车辆的到站、车辆载运的货物品类等。
步骤303:依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤304~311。
步骤304:判断该车辆信息是否指示对应车辆为空车,若是,执行步骤305;否则,确定对应车辆为重车,执行步骤306。
步骤305:将该列车的到站作为该空车的到站。
步骤306:从列车动态库中查找本列车运行时刻表,判断是否查找到,若是,执行步骤307;否则,将列车的发站作为车辆的当前站,执行步骤310。
步骤307:按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,记录车辆标识、车辆在到达列车到站前途径各站的站标识及途径各站的时间。
步骤308:判断该车辆的到站是否与列车的到站相同,若是,返回步骤303;否则,执行步骤309。
步骤309:将列车的到站作为该车辆的当前站。
步骤310:执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,记录车辆的标识、车辆在当前站与该车辆的到站之间的径路。
步骤311:执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,记录车辆标识、车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤303。
图4为本申请实施例提供的根据列车到达报告进行车流推算的方法流程图,其具体步骤如下:
步骤401:读取列车到达报告的报告头,读取报告头中的列车车次、发站、到站、编组等信息。
步骤402:判断编组内容是否为空,若是,则确认列车为单机列车,不进行车流推算,本流程结束;否则,执行步骤403。
步骤403:依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤404~410。
步骤404:判断该车辆信息是否指示对应车辆为空车,若是,执行步骤405;否则,执行步骤406。
步骤405:将该空车加入到本列车到站的空车队列,返回步骤403。
步骤406:判断该重车的到站是否与本列车的到站相同,若是,执行步骤407;否则,执行步骤408。
步骤407:执行车辆终到推算,执行完毕,返回步骤403。
步骤408:将本列车的到站作为该重车的当前站,根据列车到达报告中的列车在当前站的到达时间,计算该重车在当前站的编组时间,根据该重车在当前站的编组时间计算列车在当前站的出发时间。
步骤409:执行车辆径路推算,得到该重车的当前站与该重车的到站之间的径路,记录车辆标识、车辆在当前站与到站之间的径路。
步骤410:执行车辆在车站到发时间推算,得到该重车在当前站与该重车的到站之间途径各站的时间,记录车辆标识、车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤403。
图3、4所示流程中都用到了车辆径路推算,图5给出了本申请实施例提供的车辆径路推算的方法流程图,其具体步骤如下:
步骤501:确定参与车辆径路推算的起点站、终点站和货物品类。
例如:若作为重车的车辆到站在列车到站之后,则需要计算列车到站与车辆到站之间的径路,则参与车辆径路推算的起点站为列车到站、终点站为车辆到站。
步骤502:在车辆径路参数表中,查找参与车辆径路推算的起点站、终点站和货物品类对应的经由中间站及站间里程信息,判断是否查找到,若是,执行步骤503;否则,执行步骤504。
车辆径路参数表中记录了已知的某些站之间的经由中间站及站间里程信息。
步骤503:直接读取车辆径路参数表中的对应经由中间站及站间里程信息,本流程结束。
步骤504:根据起点站、终点站、货物品类调用径路计算模块计算对应的经由中间站及站间里程信息,记录计算得到的经由中间站及站间里程信息,并以起点站、终点站、货物品类标识。
径路计算模块为已有成熟模块。
图3、4所示流程中都用到了车辆在车站到发时间推算,图6为本申请实施例提供的车辆在车站到发时间推算的方法流程图,其具体步骤如下:
步骤601:确定参与车辆在车站到发时间推算的起点站和终点站,将起点站作为车辆的当前站。
例如:若车辆所挂运的列车没有列车运行时刻表,则需要计算车辆在列车发站(即车辆发站)与车辆到站之间的各站的到发时间,则参与车辆在车站到发时间推算的起点站为列车发站、终点站为车辆到站;
若车辆所挂运的列车有列车运行时刻表,但车辆到站在列车到站之后,则需计算车辆在列车到站与车辆到站之间的各站的到发时间,则参与车辆在车站到发时间推算的起点站为列车到站、终点站为车辆到站。
步骤602:判断是否能从车辆状态报告获取车辆在当前站的出发时间,若是,执行步骤607;否则,执行步骤603。
例如:若起点站为当前站,且起点站为列车发站,且车辆状态报告为列车出发站,则可从列车出发报告中获取当前站的出发时间。
步骤603:从车辆状态报告获取车辆在当前站的到达时间。
步骤604:判断当前站是否具有预设的车辆在车站的停留时长,若是,执行步骤605;否则,执行步骤606。
步骤605:根据车辆在当前站的到达时间、预设的车辆在车站的停留时长,计算车辆在当前站的出发时间,转至步骤607。
步骤606:计算车辆在当前站出发时间=车辆在当前站到达时间。
步骤607:判断当前站是否为车辆到站,若是,执行步骤608;否则,执行步骤609。
步骤608:执行车辆终到推算,本流程结束。
步骤609:根据车辆径路推算结果中的车辆在当前站与下一站间的里程,以及预设的车辆平均运行速度,计算车辆在当前站与下一站间的运行时长,计算车辆在下一站的到达时间=车辆在当前站的出发时间+车辆在当前站与下一站间的运行时长。
步骤610:将下一站作为新的当前站,返回步骤602。
图4、图6所示流程中都用到了车辆终到推算,具体地,如果车辆到站就是车辆的最终到站,则执行车辆终到推算,图7为本申请实施例提供的车辆终到推算方法流程图,其具体步骤如下:
步骤701:确定车辆到站时间。
根据上述流程,车辆到站时间可以从列车运行时刻表得知,也可以根据车辆在车站到发时间推算结果得知。本步骤701直接利用已有结果即可。
步骤702:根据车辆状态报告中的编组信息,判断该车辆是否为空车,若是,执行步骤707;否则,执行步骤703。
本步骤中的车辆状态报告指的是需要进行车辆终到推算的车辆状态报告,例如:列车到达报告。
步骤703:执行车辆入线时间推算:车辆入线时间=车辆到站时间+预设的车辆入线等待时长。
步骤704:执行车辆开卸时间推算:车辆开卸时间=车辆入线时间+预设的车辆卸车等待时长。
步骤705:执行车辆卸空时间推算:车辆卸空时间=车辆开卸时间+预设的卸车作业时长。
步骤706:当该车辆卸空后,将该车辆的状态变更为空车。
步骤707:将该空车加入到本站的待用空车队列。
图8为本申请实施例提供的根据列车解体报告进行车流推算的方法流程图,其具体步骤如下:
步骤801:读取列车解体报告的报告头中的列车解体完成时间。
步骤802:执行列车编组完成时间推算:列车编组完成时间=列车解体完成时间+预设的列车集结时长+预设的编组作业时长。
列车解体完成时间从列车解体报告中读取。
步骤803:执行列车出发时间推算:列车出发时间=列车编组完成时间+预设的列车待发时长。
步骤804:对于列车编组中的每一车辆,执行车辆径路推算,得到车辆在发站、到站之间的径路(即途径的各站),执行车辆在车站到发时间推算,得到车辆途径发站、到站之间各站的时间。
可根据列车解体报告中的列车id在编组信息库中查找到对应的编组信息,编组信息中包含了该列车挂运的车辆列表,车辆列表中包含了:车辆标识、车辆的发站、到站、车辆载运的货物品类等。其中,车辆的发站即为当前编组站。
根据列车编组报告进行车流推算的流程如下:
首先,根据列车编组报告中的列车编组完成时间,推算列车出发时间=列车编组完成时间+预设的列车待发时长。
然后,按照与列车出发报告相同的推算流程,对列车编组报告执行车流推算,即,将步骤301~311中的“列车出发报告”替换为“列车编组报告”即可。
对于列车解保留报告,将列车解保留车站视为列车发站,然后按照与列车出发报告相同的推算流程,对列车解保留报告执行车流推算,即,将步骤301~311中的“列车出发报告”替换为“列车解保留报告”即可。
图9为本申请实施例提供的根据车辆装车报告进行车流推算的方法流程图,其具体步骤如下:
步骤901:读取车辆装车报告的装车信息。
步骤902:判断该车辆装车报告的装车信息中是否包含出线时间,若是,执行步骤908;否则,执行步骤903。
步骤903:判断该车辆装车报告的装车信息中是否包含装完时间,若是,执行步骤907;否则,执行步骤904。
步骤904:判断该车辆装车报告的装车信息中是否包含开装时间,若是,执行步骤906;否则,执行步骤905。
步骤905:执行车辆开装时间推算:车辆开装时间=车辆装车报告中的车辆入线时间+预设的装车等待时长。
步骤906:执行车辆装完时间推算:车辆装完时间=车辆开装时间+预设的装车作业时长。
步骤907:执行车辆出线时间推算:车辆出线时间=车辆装完时间+预设的出线等待时长。
步骤908:执行车辆出发时间推算:车辆出发时间=车辆出线时间+预设的出发等待时长。
步骤909:根据车辆装车报告的报告头中的发站、到站和货物品类,将发站作为车辆径路推算的起点站,将到站作为车辆径路推算的终点站,执行车辆径路推算。
步骤910:推算出车辆在发站与到站之间的径路后,将车辆的发站作为参与车辆在车站到发时间推算的起点站,将车辆的到站作为参与车辆在车站到发时间推算的终点站,执行车辆在车站到发时间推算。
图10为本申请实施例提供的根据车辆卸车报告进行车流推算的方法流程图,其具体步骤如下:
步骤1001:读取车辆卸车报告的卸车信息。
步骤1002:判断该车辆卸车报告的卸车信息中是否包含出线时间,若是,本流程结束;否则,执行步骤1003。
若该车辆卸车报告的卸车信息中包含出线时间,还可进一步确认该车辆是否已加入空车队列,若未加入,则将该车辆加入空车队列。
步骤1003:判断该车辆卸车报告的卸车信息中是否包含卸完时间,若是,执行步骤1007;否则,执行步骤1004。
步骤1004:判断该车辆卸车报告的卸车信息中是否包含开卸时间,若是,执行步骤1006;否则,执行步骤1005。
步骤1005:执行车辆开卸时间推算:车辆开卸时间=车辆卸车报告中的车辆入线时间+预设的卸车等待时长。
步骤1006:执行车辆卸完时间推算:车辆卸完时间=车辆开卸时间+预设的卸车作业时长,在车辆卸完时间,执行步骤1007。
步骤1007:将车辆的状态由重车改为空车,将车辆加入空车队列。
以上预设的各类时长参数,根据最近一段时间所统计的执行相应作业消耗时长的平均值设定,如果没有统计值,则依据人工经验值设定。
除了上述提到的报告外,还有三类车辆报告,分别是:运/非状态转换报告、新车加入报告和车辆退出报告。这三类报告都不直接参与车辆推算。当接收到这三类报告时,根据报告内容更新对应车辆的状态即可。
本申请的有益技术效果如下:
1)接收到车辆状态报告后,直接复制一份,一份直接放入推算报告历史库,另一份直接用于车流推算,而无需再从推算报告历史库重新读取车辆状态报告进行车流推算,减少了推算报告历史库的io(输入输出)瓶颈;
2)可以实时地处理车辆状态报告,减少了推算结果的误差;
3)对不同的车辆状态报告可以并行推算,处理速度提升空间大。
图11为本申请实施例提供的铁路实时车流推算装置的组成示意图,该装置主要包括:车辆状态报告接收模块111和车辆状态报告处理模块112,其中:
车辆状态报告接收模块111:从铁路运输信息集成平台上实时接收车辆状态报告。
车辆状态报告处理模块112:将车辆状态报告接收模块111接收的车辆状态报告复制一份,将一份车辆状态报告放入推算报告历史库,根据另一份车辆状态报告的类型进行对应的车流推算。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为列车出发报告,
车辆状态报告处理模块112进行对应的车流推算包括:
a、读取列车出发报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为列车到达报告;
车辆状态报告处理模块112进行对应的车流推算包括:
a、读取列车到达报告的报告头中的列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g;
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,执行步骤e;
d、将该空车加入到本列车到站的空车队列,返回步骤b;
e、判断该重车的到站是否与本列车的到站相同,若是,执行步骤f;否则,执行步骤g;
f、执行车辆终到推算,执行完毕,返回步骤b;
g、将本列车的到站作为该重车的当前站,根据本列车在当前站的到站时间,计算该重车在当前站的编组时间,根据该重车在当前站的编组时间计算列车在当前站的出发时间,执行车辆径路推算,得到该重车的当前站与该重车的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该重车在当前站与该重车的到站之间途径各站的时间,计算完毕,返回步骤b。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为列车解体报告;
车辆状态报告处理模块112进行对应的车流推算包括:
读取列车解体报告的报告头中的列车解体完成时间;
执行列车编组完成时间推算:列车编组完成时间=列车解体完成时间+预设的列车集结时长+预设的编组作业时长;
执行列车出发时间推算:列车出发时间=列车编组完成时间+预设的列车待发时长;
对于列车编组中的每一车辆,执行车辆径路推算,得到车辆在发站、到站之间的径路,执行车辆在车站到发时间推算,得到车辆途径发站、到站之间各站的时间。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为列车编组报告;
车辆状态报告处理模块112进行对应的车流推算包括:
a、根据列车编组报告中的列车编组完成时间,推算列车出发时间=列车编组完成时间+预设的列车待发时长,确定列车车次、发站、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为列车解保留报告;
车辆状态报告处理模块112进行对应的车流推算包括:
a、将列车解保留车站视为列车发站,确定列车车次、到站、编组信息;
b、依次读取编组内容中的各车辆信息,对于读取到的每一车辆信息,执行步骤c~g:
c、判断该车辆信息是否指示对应车辆为空车,若是,执行步骤d;否则,确定对应车辆为重车,执行步骤e;
d、将该列车的到站作为该空车的到站;
e、从列车动态库中查找本列车运行时刻表,若查找到,执行步骤f;否则,将列车的发站作为车辆的当前站,执行步骤g;
f、按照本列车运行时刻表,计算该车辆到达列车到站前途径各站的时间,判断该车辆的到站是否与列车的到站相同,若是,返回步骤b;否则,将列车的到站作为该车辆的当前站,执行步骤g;
g、执行车辆径路推算,得到该车辆在当前站与该车辆的到站之间的径路,计算完毕,执行车辆在车站到发时间推算,得到该车辆在当前站与该车辆的到站之间途径各站的时间,返回步骤b。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为车辆装车报告;
车辆状态报告处理模块112进行对应的车流推算包括:
a、判断该车辆装车报告的装车信息中是否包含出线时间,若是,执行步骤g;否则,执行步骤b;
b、判断该车辆装车报告的装车信息中是否包含装完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆装车报告的装车信息中是否包含开装时间,若是,执行步骤e;否则,执行步骤d;
d、执行开装时间推算:开装时间=车辆装车报告的装车信息中的入线时间+预设的装车等待时长;
e、执行装完时间推算:装完时间=开装时间+预设的装车作业时长;
f、执行出线时间推算:出线时间=装完时间+预设的出线等待时长;
g、执行出发时间推算:出发时间=出线时间+预设的出发等待时长。
h、根据车辆装车报告的报告头中的发站、到站和货物品类,将发站作为车辆径路推算的起点站,将到站作为车辆径路推算的终点站,执行车辆径路推算,推算完毕,将车辆的发站作为参与车辆在车站到发时间推算的起点站,将车辆的到站作为参与车辆在车站到发时间推算的终点站,执行车辆在车站到发时间推算。
一种实施例中,车辆状态报告接收模块111接收的车辆状态报告为车辆卸车报告;
车辆状态报告处理模块112进行对应的车流推算包括:
a、判断该车辆卸车报告的卸车信息中是否包含出线时间,若是,本流程结束;否则,执行步骤b;
b、判断该车辆卸车报告的卸车信息中是否包含卸完时间,若是,执行步骤f;否则,执行步骤c;
c、判断该车辆卸车报告的卸车信息中是否包含开卸时间,若是,执行步骤e;否则,执行步骤d;
d、执行开卸时间推算:开卸时间=车辆卸车报告的卸车信息中的入线时间+预设的卸车等待时长;
e、执行卸完时间推算:卸完时间=开卸时间+预设的卸车作业时长,在卸完时间到达时,执行步骤f;
f、将车辆的状态由重车改为空车,将车辆加入空车队列。
一种实施例中,车辆状态报告处理模块112执行车辆径路推算包括:
a、确定参与车辆径路计算的起点站、终点站和货物品类;
b、在车辆径路参数表中,查找参与车辆径路推算的起点站、终点站和货物品类对应的经由支点站信息,判断是否查找到,若是,直接读取车辆径路参数表中的对应经由中间车站和站间里程信息;否则,根据起点站、终点站、货物品类调用径路计算模块计算对应的经由中间车站和站间里程信息。
一种实施例中,车辆状态报告处理模块112执行车辆在车站到发时间推算包括:
a、确定参与车辆在车站到发时间推算的起点站和终点站,将所述起点站作为车辆的当前站;
b、判断是否能从车辆状态报告获取车辆在当前站的出发时间,若是,执行步骤g;否则,执行步骤c;
c、从车辆状态报告获取车辆在当前站的到达时间;
d、判断当前站是否具有预设的车辆在车站的停留时长,若是,执行步骤e;否则,执行步骤f;
e、根据车辆在当前站的到达时间、预设的车辆在车站的停留时长,计算车辆在当前站的出发时间,转至步骤g;
f、计算车辆在当前站出发时间=车辆在当前站到达时间;
g、判断当前站是否为车辆到站,若是,执行车辆终到推算,本流程结束;否则,根据车辆径路推算结果中的车辆在当前站与下一站间的里程,以及预设的车辆平均运行速度,计算车辆在当前站与下一站间的运行时长,计算车辆在下一站的到达时间=车辆在当前站的出发时间+车辆在当前站与下一站间的运行时长,将下一站作为新的当前站,返回步骤b;
一种实施例中,车辆状态报告处理模块112执行车辆终到推算包括:
a、确定车辆到站时间;
b、根据车辆状态报告中的编组信息,判断该车辆是否为空车,若是,执行步骤d;否则,执行步骤c;
c、执行车辆入线时间推算:车辆入线时间=车辆到站时间+预设的车辆入线等待时长;执行车辆开卸时间推算:车辆开卸时间=车辆入线时间+预设的车辆卸车等待时长;执行车辆卸空时间推算:车辆卸空时间=车辆开卸时间+预设的卸车作业时长;当该车辆卸空后,将该车辆的状态变更为空车;
d、将该空车加入到本站的待用空车队列。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。