康山松,劉育君,朱志國
(西南交通大學(xué) 交通運(yùn)輸與物流學(xué)院,四川 成都 610031)
隨著鐵路科學(xué)技術(shù)的不斷進(jìn)步,編組站計(jì)算機(jī)集成過程系統(tǒng) (Computer Integrated Process System,CIPS) 先后在成都北、貴陽南和武漢北編組站成功運(yùn)用,實(shí)現(xiàn)計(jì)算機(jī)自動(dòng)生成班計(jì)劃等編組站的各項(xiàng)復(fù)雜作業(yè)的自動(dòng)化成為車站現(xiàn)場工作的迫切需要。為此,通過分析研究班計(jì)劃編制過程的數(shù)據(jù)結(jié)構(gòu),完成計(jì)算機(jī)自動(dòng)繪制班計(jì)劃技術(shù)作業(yè)圖表的應(yīng)用系統(tǒng)開發(fā)。
車站班計(jì)劃是鐵路車站現(xiàn)場工作的依據(jù)。車站班計(jì)劃的編制是鐵路技術(shù)站完成鐵路局調(diào)度中心下達(dá)的工作計(jì)劃的重要環(huán)節(jié),直接影響車站日班工作任務(wù)的完成質(zhì)量。通過編組站的列車一般包括無改編中轉(zhuǎn)列車、部分改編中轉(zhuǎn)列車、到達(dá)解體列車和自編始發(fā)列車和少部分旅客列車[1]。班計(jì)劃主要針對貨車計(jì)劃、用車流推算,分為鐵路局調(diào)度所編制的整體班計(jì)劃和編組站班計(jì)劃兩類。鐵路局班計(jì)劃的下發(fā)和編組站班計(jì)劃的上報(bào),主要通過TMIS網(wǎng)絡(luò)傳輸。
改編列車一般需要在編組站經(jīng)過到達(dá)、解體、集結(jié)、編組和出發(fā)等一系列環(huán)節(jié),其中還包括車輛的貨物作業(yè)過程,這些都會(huì)在班計(jì)劃技術(shù)作業(yè)大表上體現(xiàn)出來。根據(jù)班計(jì)劃編制的主要內(nèi)容:列車到達(dá)計(jì)劃,列車出發(fā)計(jì)劃,裝車、卸車和排空計(jì)劃,取送作業(yè)計(jì)劃,班工作指標(biāo)、其他重點(diǎn)任務(wù)和上級(jí)指示,分析得到實(shí)現(xiàn)計(jì)算機(jī)編制班計(jì)劃技術(shù)作業(yè)圖表需要的基礎(chǔ)數(shù)據(jù)。
(1)列車到達(dá)信息:包括旅客列車和貨物列車的到達(dá)信息,列車的種類、到達(dá)時(shí)刻、編組內(nèi)容等。
(2)列車出發(fā)信息:包括列車的種類、發(fā)車時(shí)刻、編組內(nèi)容等。
(3)調(diào)機(jī)作業(yè)信息:包括駝峰解體調(diào)機(jī)和峰尾編組調(diào)機(jī)的具體作業(yè)過程和時(shí)間標(biāo)準(zhǔn),以及調(diào)機(jī)的整場和整理作業(yè)等。
(4)貨車作業(yè)信息:包括貨場作業(yè)過程、作業(yè)時(shí)間標(biāo)準(zhǔn)和調(diào)機(jī)取送作業(yè)過程等。
(5)相關(guān)作業(yè)時(shí)間標(biāo)準(zhǔn):列車到達(dá)技術(shù)作業(yè)時(shí)間標(biāo)準(zhǔn)、出發(fā)技術(shù)作業(yè)時(shí)間標(biāo)準(zhǔn)和解體列車作業(yè)時(shí)間標(biāo)準(zhǔn)等。
主要研究目的是建立車站班計(jì)劃編制的關(guān)系數(shù)據(jù)結(jié)構(gòu)模型。關(guān)系數(shù)據(jù)庫是以關(guān)系數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的數(shù)據(jù)庫,其利用關(guān)系描述現(xiàn)實(shí)世界。在關(guān)系數(shù)據(jù)庫中,關(guān)系必須遵循一定的規(guī)則,這種規(guī)則就是范式。目前,關(guān)系數(shù)據(jù)庫有6種常見的范式,第一范式 (1NF) 滿足最低要求,在此基礎(chǔ)上第二范式 (2NF) 進(jìn)一步滿足更多要求,其余范式依次類推[2]。
規(guī)范化程度過低的關(guān)系可能會(huì)存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題,需要對其進(jìn)行規(guī)范化,轉(zhuǎn)換成高級(jí)范式,但這并不意味著規(guī)范化程度越高的關(guān)系模式就越好[3]。在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須基于現(xiàn)場實(shí)際情況和用戶應(yīng)用需求,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式。
經(jīng)過研究分析車站班計(jì)劃編制過程,可將到達(dá)車站的列車分為以下幾類。
(1)旅客列車和無調(diào)中轉(zhuǎn)列車。這些列車在車站的作業(yè)較簡單,一般是在車站經(jīng)過少量技術(shù)作業(yè)后又隨原列車?yán)^續(xù)運(yùn)行。
(2)有調(diào)中轉(zhuǎn)貨物列車。這些列車在車站需要經(jīng)過到達(dá)、解體、集結(jié)和編組始發(fā)等一系列作業(yè)過程,其作業(yè)過程最為復(fù)雜,也是需要進(jìn)行詳細(xì)研究的部分。
(3)貨物作業(yè)車,在隨有調(diào)中轉(zhuǎn)貨物列車到達(dá)的車輛中,有一部分是需要在車站進(jìn)行貨物作業(yè)的車輛,由于需要確定調(diào)機(jī)的取送作業(yè)過程,應(yīng)將這部分車輛單獨(dú)區(qū)分開。
同時(shí)考慮到不同車站股道數(shù)量、調(diào)機(jī)作業(yè)、接發(fā)車輛類型的不同,進(jìn)一步劃分出股道、調(diào)機(jī)、車輛類型等多個(gè)實(shí)體。
通過分析以上過程,設(shè)計(jì)出班計(jì)劃的數(shù)據(jù)字典,即各類數(shù)據(jù)描述的集合。
在局部實(shí)體-聯(lián)系圖(Entity-Relationship Diagram,E-R圖) 設(shè)計(jì)中,確定實(shí)體和實(shí)體屬性時(shí)一般遵循以下原則:屬性不能再具有需要描述的性質(zhì),即屬性必須是不可分的數(shù)據(jù)項(xiàng);屬性不能與其他實(shí)體具有聯(lián)系,即聯(lián)系只發(fā)生在實(shí)體之間[4]。所有的實(shí)體和屬性如表1所示。對設(shè)計(jì)好的局部 E-R圖進(jìn)行合并,形成一個(gè)整體的概念結(jié)構(gòu)圖,即將所有的局部 E-R 圖合成一個(gè)系統(tǒng)的全局 E-R 圖,如圖1所示。
最后對設(shè)計(jì)的車站班計(jì)劃數(shù)據(jù)結(jié)構(gòu),選用 Microsoft Access 2003 作為數(shù)據(jù)庫管理系統(tǒng)進(jìn)行數(shù)據(jù)錄入。
表1 實(shí)體與屬性
圖1 全局 E-R 圖
通過對車站班計(jì)劃作業(yè)過程的詳細(xì)分析,將車站班計(jì)劃作業(yè)圖表繪制劃分成以下重要部分:旅客列車和無調(diào)中轉(zhuǎn)車作業(yè);有調(diào)中轉(zhuǎn)車到達(dá)作業(yè);有調(diào)中轉(zhuǎn)車出發(fā)作業(yè);調(diào)機(jī)作業(yè)和貨場作業(yè)等[5]。在應(yīng)用系統(tǒng)開發(fā)過程中,需要重點(diǎn)解決以下關(guān)鍵技術(shù):應(yīng)用程序和數(shù)據(jù)庫的連接;運(yùn)行圖運(yùn)行線繪制;股道占用;調(diào)機(jī)解體過程;調(diào)機(jī)送車、調(diào)移和取車;調(diào)機(jī)解體、編組和取送調(diào)移作業(yè)的協(xié)調(diào)。
選用 Microsoft Visual C++6.0 的 MFC 實(shí)現(xiàn)應(yīng)用程序開發(fā),通過 ADO (ActiveX Data Objects) 技術(shù)調(diào)用數(shù)據(jù)資源,實(shí)現(xiàn)車站班計(jì)劃作業(yè)圖表的計(jì)算機(jī)自動(dòng)繪制。程序和數(shù)據(jù)庫連接過程如下。
(1)引入 ADO 動(dòng)態(tài)鏈接庫。通過使用預(yù)編譯指令“#import”來告訴編譯器將此指令中指定的動(dòng)態(tài)鏈接庫引入工程中,并從動(dòng)態(tài)鏈接庫中取出其中的對象和信息。
(2)在應(yīng)用程序主類的 InitInstance()成員函數(shù)中用::CoInitialize (NULL) 初始化 OLE/COM 庫環(huán)境。并在程序最后調(diào)用以下代碼釋放程序所占用的COM資源:::CoUnInitialize()。
(3)創(chuàng)建 ADO 與數(shù)據(jù)源的連接。
(4)調(diào)用數(shù)據(jù)庫數(shù)據(jù)繪制車站班計(jì)劃圖。
在車站班計(jì)劃作業(yè)圖表中,上、下兩端都有到達(dá)和出發(fā)列車在相鄰區(qū)間的簡要運(yùn)行情況。在繪制運(yùn)行線時(shí)應(yīng)注意以下問題。
(1)在繪制運(yùn)行線時(shí)應(yīng)注意繪制坐標(biāo)點(diǎn)與時(shí)刻的轉(zhuǎn)換,用一個(gè) TimeChange() 函數(shù)實(shí)現(xiàn)。
(2)運(yùn)行線的繪制方向,如到達(dá)和出發(fā)運(yùn)行線繪制的區(qū)別。
(3)當(dāng)運(yùn)行線超出運(yùn)行圖邊界時(shí)的處理方法:用一個(gè) LineTo() 函數(shù)實(shí)現(xiàn)。
列車到達(dá)車站和從車站出發(fā)一般都需要占用一條股道進(jìn)行技術(shù)作業(yè)檢查,通過從數(shù)據(jù)庫中讀取列車占用股道,然后在車站作業(yè)圖表的相應(yīng)位置繪制列車占用情況需要用到股道占用公式。結(jié)合具體車站作業(yè)實(shí)例,總結(jié)出股道占用公式如下。
假定 n 為從數(shù)據(jù)庫讀取到的列車占用股道,根據(jù)運(yùn)行圖結(jié)構(gòu),股道占用與對應(yīng)坐標(biāo)的公式為:
X 坐標(biāo):列車到發(fā)時(shí)間點(diǎn)對應(yīng)的坐標(biāo)
Y 坐標(biāo):190+40×n
車站班計(jì)劃出發(fā)車流的來源很大部分是到達(dá)車站的有調(diào)中轉(zhuǎn)列車經(jīng)駝峰調(diào)機(jī)解體后集結(jié)到調(diào)車場股道的車流,所以確定調(diào)機(jī)的解體時(shí)間是車站班計(jì)劃工作的重點(diǎn)。調(diào)機(jī)解體需要注意兩個(gè)方面的內(nèi)容:列車解體時(shí)刻和解體列車的編組內(nèi)容。列車解體時(shí)刻決定了調(diào)機(jī)開始解體的時(shí)間,而編組內(nèi)容決定了調(diào)機(jī)解體后,哪些股道上的車輛會(huì)相應(yīng)增加。調(diào)機(jī)解體車的列繪制過程如下。
(1)讀取相關(guān)數(shù)據(jù),如車次、解體時(shí)間、編組內(nèi)容等。
(2)判斷是否為摘掛列車,調(diào)用摘掛解體時(shí)間解體,繪制解體圖形;否則,調(diào)用區(qū)段解體時(shí)間解體,繪制解體圖形。
(3)增加相應(yīng)編組方向車輛數(shù),并繪制圖形。
(4)讀取下一條數(shù)據(jù),直至全部數(shù)據(jù)處理完成后結(jié)束。
在到達(dá)車站的有調(diào)中轉(zhuǎn)列車中,很大部分是通過到達(dá)、解體、編組和出發(fā)作業(yè)后就隨編組出發(fā)列車出發(fā)的車輛,但還有一部分車輛需要在車站進(jìn)行貨物的裝卸作業(yè)。而這些車輛的作業(yè)過程一般需要在貨場進(jìn)行,這就需要調(diào)機(jī)將貨物作業(yè)車輛從到發(fā)線送車到貨場作業(yè)地點(diǎn),也需要將作業(yè)完成的車輛從貨場取回,以及車輛在貨場不同地點(diǎn)間的調(diào)移。
車站班計(jì)劃的編制是一個(gè)連續(xù)、協(xié)調(diào)的過程,因而班計(jì)劃圖的繪制也同樣是一個(gè)協(xié)調(diào)各部分車流的過程,列車的到達(dá)、出發(fā)和車站工作組織都是一個(gè)相互協(xié)調(diào)的過程,列車到達(dá)適應(yīng)列車編組出發(fā),出發(fā)列車的編制要滿足車輛接續(xù)時(shí)間,車站工作組織要和列車到達(dá)、出發(fā)相協(xié)調(diào),使車站各固定設(shè)備和移動(dòng)設(shè)備達(dá)到很好的利用。在車站班計(jì)劃作業(yè)圖表編制過程中,最重要的協(xié)調(diào)就是調(diào)機(jī)解體、編組和取送作業(yè)的協(xié)調(diào),其作業(yè)繪制過程如下。
(1)從解體內(nèi)容、編組內(nèi)容和貨場作業(yè)3個(gè)表中同步讀取數(shù)據(jù)。
(2)對作業(yè)時(shí)間進(jìn)行排序,得到最早作業(yè)時(shí)間,并分別繪制解體作業(yè)、編組作業(yè)和取送調(diào)移作業(yè)。
(3)在3個(gè)表中讀取下一條數(shù)據(jù),直至全部數(shù)據(jù)處理完成后結(jié)束。
設(shè)計(jì)的班計(jì)劃數(shù)據(jù)庫應(yīng)用系統(tǒng),經(jīng)調(diào)試運(yùn)行結(jié)果如圖2所示。
對計(jì)算機(jī)自動(dòng)編制班計(jì)劃圖表過程進(jìn)行分析研究,通過數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和程序編制實(shí)現(xiàn)了車站班計(jì)劃作業(yè)圖表的自動(dòng)編制,表明結(jié)構(gòu)設(shè)計(jì)的可行性和程序編制的正確性,該系統(tǒng)對實(shí)現(xiàn)編組站作業(yè)自動(dòng)化和運(yùn)用于高校教學(xué)實(shí)驗(yàn)平臺(tái)都具有一定的借鑒意義。
[1]彭其淵. 行車組織[M]. 成都:西南交通大學(xué)出版社,1999.
[2]王 珊,陳 紅. 數(shù)據(jù)庫系統(tǒng)原理教程[M]. 北京:清華大學(xué)出版社,2002.
[3]張鳳琴. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,2005.
[4]夏真榮. 隧道掘進(jìn)爆破設(shè)計(jì)的數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)[D]. 成都:西南交通大學(xué),2005.
[5]梁西萍,鄧紅英. 編制車站班計(jì)劃實(shí)驗(yàn)系統(tǒng)的研究與開發(fā)[J].甘肅科技縱橫,2008,37(6):125.