国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

列車確報(bào)自動(dòng)轉(zhuǎn)發(fā)程序的開(kāi)發(fā)

2014-08-01 14:55:53潘云松
關(guān)鍵詞:徑路鐵路局總公司

潘云松

(昆明鐵路局 信息技術(shù)所,昆明 650011)

列車確報(bào)自動(dòng)轉(zhuǎn)發(fā)程序的開(kāi)發(fā)

潘云松

(昆明鐵路局 信息技術(shù)所,昆明 650011)

列車確報(bào)是指導(dǎo)鐵路運(yùn)輸生產(chǎn)的重要基礎(chǔ)信息,確報(bào)轉(zhuǎn)報(bào)是整個(gè)確報(bào)體系中是核心。為了提高確報(bào)轉(zhuǎn)報(bào)質(zhì)量,昆明鐵路局開(kāi)發(fā)了確報(bào)自動(dòng)轉(zhuǎn)報(bào)程序。它利用調(diào)度計(jì)劃和行車調(diào)度信息,使用最短路徑(Dijkstra)算法推算轉(zhuǎn)報(bào)車站,實(shí)現(xiàn)自動(dòng)轉(zhuǎn)報(bào)。文中重點(diǎn)論述程序設(shè)計(jì)原理和采用的技術(shù)。

列車確報(bào);自動(dòng)轉(zhuǎn)發(fā);消息隊(duì)列;Oracle OCCI

列車確報(bào)也稱“運(yùn)統(tǒng)一”,是列車出發(fā)時(shí)向下一站和運(yùn)輸組織部門報(bào)告本列車及其車輛詳細(xì)組成情況的信息報(bào)告,是編組作業(yè)、卸車預(yù)報(bào)、車流調(diào)整等工作必不可少的信息,也是鐵路車輛追蹤、行車調(diào)度、機(jī)車調(diào)度以及調(diào)車指揮作業(yè)的重要基礎(chǔ)數(shù)據(jù)。

確報(bào)信息一般由編組站、區(qū)段站的確報(bào)系統(tǒng)產(chǎn)生。確報(bào)信息系統(tǒng)由鐵路總公司、鐵路局和車站3部分組成。車站部分主要實(shí)現(xiàn)確報(bào)發(fā)報(bào)和收?qǐng)?bào)功能,在鐵路總公司和鐵路局端主要實(shí)現(xiàn)確報(bào)轉(zhuǎn)報(bào)功能。本文主要介紹鐵路局端確報(bào)轉(zhuǎn)報(bào)程序的開(kāi)發(fā)。確報(bào)轉(zhuǎn)報(bào)程序工作原理是根據(jù)確報(bào)報(bào)文信息,將確報(bào)報(bào)文轉(zhuǎn)發(fā)到需要的車站,確報(bào)轉(zhuǎn)報(bào)質(zhì)量對(duì)車站車號(hào)人員的工作量和調(diào)車計(jì)劃的編制至關(guān)重要,需要通過(guò)考核提升確報(bào)質(zhì)量。

1 確報(bào)轉(zhuǎn)報(bào)現(xiàn)狀和存在問(wèn)題

鐵路局確報(bào)信息系統(tǒng)主要由鐵路總公司、鐵路局和車站3部分組成。車站是確報(bào)產(chǎn)生的源點(diǎn)和接收確報(bào)點(diǎn),鐵路總公司和鐵路局負(fù)責(zé)確報(bào)的轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)規(guī)則是:(1)鐵路局管內(nèi)確報(bào),即發(fā)報(bào)站和收?qǐng)?bào)站都是同一個(gè)鐵路局,確報(bào)由所在鐵路局進(jìn)行轉(zhuǎn)發(fā),即發(fā)報(bào)站將確報(bào)報(bào)文傳到鐵路局,由鐵路局轉(zhuǎn)報(bào)程序根據(jù)轉(zhuǎn)報(bào)字典中的定義規(guī)則,將報(bào)文轉(zhuǎn)發(fā)到解體車站。(2)跨鐵路局報(bào)文的轉(zhuǎn)發(fā),即發(fā)報(bào)站和到站(解體站)不在同一個(gè)鐵路局,轉(zhuǎn)發(fā)規(guī)則是鐵路局收到車站發(fā)報(bào)文,判斷到站是外鐵路局車站的報(bào)文就上傳鐵路總公司,由鐵路總公司轉(zhuǎn)報(bào)程序?qū)?bào)文轉(zhuǎn)至到站所在鐵路局,再由鐵路局轉(zhuǎn)發(fā)到車站。

在實(shí)際工作中,確報(bào)報(bào)文不僅需要轉(zhuǎn)發(fā)到列車的終到站,而且還需轉(zhuǎn)發(fā)到途中經(jīng)過(guò)的有甩掛作業(yè)的車站。目前,鐵路總公司確報(bào)轉(zhuǎn)報(bào)系統(tǒng)已應(yīng)用多年,但還存在一些不足,主要表現(xiàn)在:

(1)轉(zhuǎn)發(fā)報(bào)字典定義復(fù)雜,確報(bào)漏發(fā)情況突出。在確報(bào)定義時(shí)要指明確報(bào)發(fā)站、到站、經(jīng)由,如果確報(bào)文中發(fā)站、到站、經(jīng)由在轉(zhuǎn)報(bào)字典中找不到就不會(huì)進(jìn)行轉(zhuǎn)報(bào),需要重新維護(hù)轉(zhuǎn)報(bào)字典,即便經(jīng)常維護(hù)也難免疏漏。轉(zhuǎn)報(bào)字典的記錄數(shù)往往會(huì)達(dá)到上百條;在定義時(shí)還要考慮定義記錄間相互影響,需要考慮程序發(fā)現(xiàn)第一個(gè)滿足記錄進(jìn)行轉(zhuǎn)報(bào),本次轉(zhuǎn)報(bào)結(jié)束,后面的定義都不會(huì)執(zhí)行。

(2)轉(zhuǎn)報(bào)字典中定義的最大轉(zhuǎn)報(bào)車站數(shù)不能超過(guò)5個(gè)。有些列車編組復(fù)雜,需要轉(zhuǎn)報(bào)車站超過(guò)5個(gè),轉(zhuǎn)報(bào)時(shí)就會(huì)出現(xiàn)漏報(bào),轉(zhuǎn)報(bào)程序不判斷是否需要轉(zhuǎn)報(bào)(轉(zhuǎn)報(bào)車站是否有作業(yè)),只要轉(zhuǎn)報(bào)字典定義,就進(jìn)行轉(zhuǎn)報(bào),造成車站接到許多沒(méi)用的確報(bào),給車號(hào)員挑選確報(bào)造成困難。

(3)使用原有確報(bào)轉(zhuǎn)報(bào)系統(tǒng),許多車站收不到確報(bào),經(jīng)常需要手工轉(zhuǎn)報(bào),工作量大,不能滿足24 h轉(zhuǎn)報(bào)需要。

2 確報(bào)轉(zhuǎn)報(bào)改進(jìn)方案

為解決上述問(wèn)題,昆明鐵路局開(kāi)發(fā)了確報(bào)自動(dòng)轉(zhuǎn)報(bào)程序,結(jié)合確報(bào)考核功能,提高確報(bào)發(fā)報(bào)質(zhì)量。

當(dāng)前鐵路總公司所使用的確報(bào)傳輸軟件是消息隊(duì)列(MQ)軟件,它基本可在所有系統(tǒng)平臺(tái)安裝,最大好處是不會(huì)丟失報(bào)文。確報(bào)自動(dòng)轉(zhuǎn)報(bào)程序中的重要模塊如下。

2.1 確報(bào)分發(fā)程序

其作用是把發(fā)來(lái)確報(bào)MQ信息分發(fā)到兩個(gè)應(yīng)用隊(duì)列中。1個(gè)隊(duì)列中消息被鐵路總公司程序接收入庫(kù),另1個(gè)被新確報(bào)轉(zhuǎn)發(fā)程序處理,完成確報(bào)轉(zhuǎn)發(fā)到車站的工作。

2.2 確報(bào)轉(zhuǎn)發(fā)程序

其處理過(guò)程是:

(1)解析XML格式報(bào)文,分析出報(bào)頭中的發(fā)車時(shí)間、車次、發(fā)站、到站、經(jīng)由信息以及報(bào)文中車輛到站信息。

(2)根據(jù)確報(bào)的車次,從當(dāng)前運(yùn)行圖中查找運(yùn)行線,判斷列車所經(jīng)過(guò)的列車徑路(列車所經(jīng)過(guò)車站)。

(3)如果不能找到到達(dá)終點(diǎn)站的整個(gè)路徑,則再通過(guò)車次的計(jì)劃線和基本圖(基本上每天都要開(kāi)行的車次),查找列車徑路。

(4)如果仍不能都找到,則根據(jù)發(fā)站、到站、經(jīng)由,使用最短路徑(Dijkstra)算法,找出發(fā)站到經(jīng)由站列車徑路和經(jīng)由站到終到站的徑路,求出它們合集,找出列車所經(jīng)過(guò)車站。

(5)從列車編組所有貨車終到站集合中找出列車經(jīng)過(guò)的車站,確定有進(jìn)行作業(yè)車站,需要進(jìn)行轉(zhuǎn)報(bào)。

(6)判斷需要轉(zhuǎn)報(bào)車站是否在確報(bào)站字典中(可能需要轉(zhuǎn)報(bào),但車站沒(méi)有確報(bào)系統(tǒng)),確定需轉(zhuǎn)報(bào)車站。

(7)按照確定轉(zhuǎn)報(bào)車站轉(zhuǎn)發(fā)確報(bào)。

3 確報(bào)轉(zhuǎn)發(fā)程序流程

昆明鐵路局確報(bào)自動(dòng)轉(zhuǎn)報(bào)的程序流程如圖1所示。

圖1 確報(bào)自動(dòng)轉(zhuǎn)報(bào)程序流程圖

(1)車站確報(bào)點(diǎn)利用MQ通信軟件,上傳確報(bào)數(shù)據(jù)到鐵路局,鐵路局分發(fā)程序同時(shí)將MQ消息分發(fā)到2個(gè)隊(duì)列中。

(2)由鐵路局入庫(kù)程序?qū)⑵渲?個(gè)隊(duì)列中的消息取出,并存入Oracle數(shù)據(jù)庫(kù)。

(3)新確報(bào)轉(zhuǎn)報(bào)程序,對(duì)收到的報(bào)文進(jìn)行合法性判斷,對(duì)有問(wèn)題的報(bào)文進(jìn)行記錄。

(4)根據(jù)確報(bào)的發(fā)站、到站和經(jīng)由,運(yùn)用確報(bào)轉(zhuǎn)報(bào)方案,找出轉(zhuǎn)發(fā)確報(bào)的車站。

(5)根據(jù)報(bào)文中車輛到站信息,推斷出需要轉(zhuǎn)報(bào)車站。通過(guò)MQ通信系統(tǒng),將報(bào)文轉(zhuǎn)發(fā)到車站。

4 系統(tǒng)實(shí)現(xiàn)

4.1 數(shù)據(jù)結(jié)構(gòu)定義

關(guān)鍵數(shù)據(jù)結(jié)構(gòu)采用C++語(yǔ)言描述, Oracle數(shù)據(jù)庫(kù)存儲(chǔ),每條記錄的存儲(chǔ)以對(duì)象類型保存,程序?qū)?shù)據(jù)以對(duì)象為單元進(jìn)行讀取。

(1)車站字典

記錄結(jié)構(gòu)是站名漢字、站名略碼(是關(guān)鍵字)。

struct station

對(duì)應(yīng)表定義 create or replace station_tab of station;

(2)線路字典

記錄結(jié)構(gòu)是站名漢字、站名略碼(是關(guān)鍵字),主要說(shuō)明車起始站和終到站之間是否連同,連通是有方向的,終到站到起始站不一定是連通的,該字典主要用于判定最短徑路。

(3)走行徑路

兩站之間走行徑路,經(jīng)程序處理輸出車輛結(jié)果,存放列車徑路。

說(shuō)明:根據(jù)以上數(shù)據(jù)結(jié)構(gòu),使用最短路徑(Dijkstra)算法,查找出列車經(jīng)過(guò)車站。輸入起始站和終到站,輸出結(jié)果以NodeInf的類型返回。

4.2 后臺(tái)處理程序

考慮到程序的處理速度、穩(wěn)定性和鐵路總公司的現(xiàn)有傳輸體系情況,選擇AIX操作系統(tǒng)。AIX是小型機(jī)上的一種操作系統(tǒng),比常見(jiàn)的Windows操作系統(tǒng)穩(wěn)定,代碼執(zhí)行效率高。

程序編寫采用MQ中間件、Oracle提供的OCCI和XML接口,使用C++語(yǔ)言編寫UNIX后臺(tái)程序,實(shí)現(xiàn)對(duì)確報(bào)報(bào)文接收、解析和轉(zhuǎn)發(fā)等功能。

以往UNIX后臺(tái)程序是用Oracle pro*c編寫:需要先編寫*.pc文件,后生成C程序代碼,再進(jìn)行程序編譯,程序代碼編寫和調(diào)試程序非常不方便。本文采用Oracle提供的C/C++語(yǔ)言開(kāi)發(fā)工具OCCI(Oracle C++ Call Interface),稱為Oracle C++語(yǔ)言調(diào)用接口。通過(guò)它,C++語(yǔ)言可以直接訪問(wèn)Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)(包括對(duì)象數(shù)據(jù)),調(diào)用Oracle數(shù)據(jù)庫(kù)的過(guò)程和函數(shù)。它的調(diào)用方式類似于Java 通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù),而運(yùn)行效率遠(yuǎn)高于JDBC,因?yàn)樗苯由蓹C(jī)器代碼,而Java編譯生成的是中間代碼,執(zhí)行時(shí)需要進(jìn)行解釋。能以對(duì)象數(shù)據(jù)為單元進(jìn)行直接存?。粚?duì)MQ系統(tǒng)的調(diào)用采用MQ for C++。經(jīng)過(guò)4年使用證明,該程序能很好地滿足需要,系統(tǒng)能在2 ms~10 ms時(shí)間內(nèi)完成一個(gè)確報(bào)轉(zhuǎn)報(bào)工作。

(1)后臺(tái)程序在AIX系統(tǒng)后臺(tái)運(yùn)行情況

(2)后臺(tái)轉(zhuǎn)報(bào)程序處理情況

第1條表示接到從松林站發(fā)往宣威站的車次為41012。

4.3 電子地圖

圖2 顯示列車徑路的電子地圖

為了讓使用者對(duì)轉(zhuǎn)報(bào)情況有直觀的理解,方便轉(zhuǎn)報(bào),利用電子地圖功能對(duì)整個(gè)轉(zhuǎn)報(bào)情況進(jìn)行描述,直觀標(biāo)示出確報(bào)列車實(shí)際運(yùn)行軌跡,如圖2所示。紅線部分反映一個(gè)確報(bào)從昆明南站出發(fā),經(jīng)由白水鎮(zhèn),到達(dá)六盤水軌跡標(biāo)示。另外,從圖2可以看出,在松林與宣威之間車站所有確報(bào)站都進(jìn)行轉(zhuǎn)發(fā)。

5 結(jié)束語(yǔ)

系統(tǒng)2010年投入使用至今,運(yùn)行非常穩(wěn)定。程序具有對(duì)多站轉(zhuǎn)報(bào)能力,轉(zhuǎn)報(bào)字典通過(guò)對(duì)車站拓?fù)鋱D字典做相應(yīng)維護(hù),不需要對(duì)程序本身做任何改動(dòng)。

責(zé)任編輯 楊利明

Department of train consist information auto pass-through program

PAN Yunsong
( Institute of Information Technology, Kunming Railway Administration, Kunming 650011, China )

Train consist information was the important and basic information for railway transportation. Passthrough of train consist information was the core of Train Consist Information System. To improve the quality of pass-through, the Kunming Railway Administration developed train consist information auto pass-through program. The program used dispatching plan and train control information, utilized the improved Dijkstra Algorithm to calculate the pass-through station, implement auto pass-through. The paper described the design principle of the program and the used technologies.

train consist information; auto pass-through; Message Queue; Oracle OCCI

U285∶TP39

:A

1005-8451(2014)03-0013-04

2014-01-24

潘云松,高級(jí)工程師。

猜你喜歡
徑路鐵路局總公司
房室結(jié)慢徑路發(fā)生的韋金斯基現(xiàn)象 1 例
既有災(zāi)害監(jiān)測(cè)系統(tǒng)接入鐵路局中心系統(tǒng)方案研究
邢臺(tái)路橋建設(shè)總公司
公民與法治(2020年1期)2020-05-30 12:27:54
共青團(tuán)中國(guó)鹽業(yè)總公司第二次代表大會(huì)在京召開(kāi)
LKJ徑路數(shù)據(jù)校核系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
呼和浩特鐵路局GSM-R系統(tǒng)現(xiàn)場(chǎng)應(yīng)用故障分析與處理
重慶工商大學(xué)科技開(kāi)發(fā)總公司
一種SDN架構(gòu)下業(yè)務(wù)屬性相關(guān)的多徑路由算法
論國(guó)有資產(chǎn)轉(zhuǎn)讓合同效力的認(rèn)定——以“許少雄訴海洋漁業(yè)總公司上訴案”為對(duì)象
相同徑路的高速列車運(yùn)行圖編制方法
绥江县| 阳谷县| 阿拉善右旗| 左贡县| 洛川县| 桃江县| 镶黄旗| 临武县| 石柱| 玉田县| 漯河市| 勐海县| 石屏县| 广南县| 涪陵区| 广元市| 信宜市| 大田县| 土默特右旗| 沈阳市| 曲沃县| 卓尼县| 通许县| 衡水市| 平顶山市| 二连浩特市| 海原县| 高密市| 福贡县| 浮山县| 黎川县| 米易县| 金平| 曲沃县| 天台县| 民权县| 永州市| 巨野县| 吉木乃县| 白水县| 云梦县|