劉 雁,裴世廉
(沈陽(yáng)鐵路局 信息技術(shù)所, 沈陽(yáng) 110001)
調(diào)車計(jì)劃傳輸代理程序的設(shè)計(jì)與實(shí)現(xiàn)
劉 雁,裴世廉
(沈陽(yáng)鐵路局 信息技術(shù)所, 沈陽(yáng) 110001)
調(diào)車計(jì)劃傳輸代理程序可以讀取調(diào)車作業(yè)通知單信息,根據(jù)定制格式轉(zhuǎn)換處理,通過(guò)串口傳輸?shù)今劮遄詣?dòng)化系統(tǒng)。本文介紹了應(yīng)用開發(fā)背景、系統(tǒng)需求與具體實(shí)現(xiàn)。
調(diào)車計(jì)劃傳輸;串口;格式轉(zhuǎn)換
駝峰自動(dòng)化系統(tǒng)可以提高駝峰作業(yè)效率、縮短列車解體時(shí)間,從而提高車站改編能力,在大型技術(shù)站、貨運(yùn)站廣泛使用。車站管理信息系統(tǒng)的功能涵蓋了列車到發(fā)、車輛調(diào)動(dòng)、裝卸作業(yè)、日常統(tǒng)計(jì)分析等運(yùn)輸生產(chǎn)和管理環(huán)節(jié),覆蓋到全路大部分車站,可以全面提高作業(yè)管理水平,減輕勞動(dòng)強(qiáng)度,同時(shí)為鐵路局的運(yùn)輸生產(chǎn)指揮提供原始的基礎(chǔ)信息。
調(diào)車計(jì)劃傳輸代理程序可以把車站管理信息系統(tǒng)中編制的調(diào)車作業(yè)通知單,根據(jù)現(xiàn)場(chǎng)作業(yè)需要,有選擇地傳輸?shù)今劮遄詣?dòng)化系統(tǒng)中,實(shí)現(xiàn)無(wú)縫銜接,避免駝峰作業(yè)人員人工輸入帶來(lái)的誤差,減少計(jì)劃核對(duì)時(shí)間,提高作業(yè)安全性。
目前各鐵路局推廣使用的車站管理信息系統(tǒng),程序版本有多個(gè):鐵路總公司開發(fā)的《鐵路車站綜合管理信息系統(tǒng)》,沈陽(yáng)鐵路局開發(fā)的《集中模式車站系統(tǒng)》,以及成都、蘭州等鐵路局自行研發(fā)的車站系統(tǒng)。駝峰自動(dòng)化系統(tǒng)同樣也存在多版本的情況,沈陽(yáng)鐵路局管內(nèi)使用的駝峰自動(dòng)化系統(tǒng)中,有FTK、DCD、TW-2等多種版本,即便是同一種接口模式,也會(huì)因?yàn)樵O(shè)備廠家、建設(shè)(或改建)年代不同,在數(shù)據(jù)接口模式、握手協(xié)議、關(guān)鍵字識(shí)別等細(xì)節(jié)有差別。隨著駝峰自動(dòng)化系統(tǒng)的逐步升級(jí),接收調(diào)車計(jì)劃的模式和數(shù)據(jù)格式仍然不斷修改和完善。
調(diào)車計(jì)劃數(shù)據(jù)傳輸時(shí),要保證數(shù)據(jù)完整,并實(shí)現(xiàn)格式轉(zhuǎn)換,能適應(yīng)車站系統(tǒng)和駝峰自動(dòng)化系統(tǒng)之間的傳輸協(xié)議、數(shù)據(jù)格式的差別,保證傳輸?shù)募皶r(shí)性、可靠性、穩(wěn)定性,界面簡(jiǎn)潔、操作簡(jiǎn)單。在滿足車站既有現(xiàn)場(chǎng)作業(yè)的基礎(chǔ)上,要充分考慮車站系統(tǒng)、駝峰系統(tǒng)的后續(xù)版本兼容性。
駝峰自動(dòng)化系統(tǒng)通過(guò)串口與外部系統(tǒng)交換數(shù)據(jù),如接收調(diào)車計(jì)劃、發(fā)送計(jì)劃執(zhí)行進(jìn)度等,一般在兩個(gè)場(chǎng)所實(shí)現(xiàn)物理連接:(1)在駝峰樓,與操作臺(tái)的工控機(jī)串口連接,目前,TW-2駝峰多采用該方式;(2)在駝峰自動(dòng)化機(jī)械室,駝峰自動(dòng)化系統(tǒng)與主機(jī)連接,早期建設(shè)的FTK駝峰多采用該方式。
由于物理連接位置不同,導(dǎo)致通信線路距離、數(shù)據(jù)傳輸質(zhì)量、防雷設(shè)施等方面的標(biāo)準(zhǔn)不同,在硬件選擇和物理連接方式方面存在差異:(1)微機(jī)串口直連。如果車站系統(tǒng)在駝峰樓設(shè)置微機(jī)操作,駝峰自動(dòng)化系統(tǒng)通過(guò)操作臺(tái)工控機(jī)接收調(diào)車計(jì)劃,就可以使用該微機(jī)串口通信,由駝峰值班員編制調(diào)車計(jì)劃直接傳輸,或者作為數(shù)據(jù)通信前置機(jī),傳輸解編助調(diào)、區(qū)長(zhǎng)等崗位人員編制的計(jì)劃。微機(jī)直連時(shí)一般使用光電隔離模塊加以保護(hù)。(2)考慮使用協(xié)議轉(zhuǎn)換器、專線調(diào)制解調(diào)器、基帶數(shù)傳機(jī)等硬件,延長(zhǎng)串口通訊的傳輸距離。(3)可以使用串口服務(wù)器,通過(guò)網(wǎng)絡(luò)傳輸。由于通信線路在物理連接方式不同,與硬件相關(guān)聯(lián)的串口參數(shù)設(shè)置不盡相同,甚至在不同車站、不同作業(yè)地點(diǎn)都會(huì)有差異。
車站操作用戶,希望把操作和顯示都集成在車站系統(tǒng)中,在計(jì)劃傳輸過(guò)程中不需要切換程序界面,只需要簡(jiǎn)單操作,就可以及時(shí)、迅速、準(zhǔn)確地完成計(jì)劃傳輸,并可以查詢是否傳輸成功。
開發(fā)維護(hù)人員,希望提供方便的調(diào)試、監(jiān)控手段。當(dāng)設(shè)備故障或傳輸錯(cuò)誤時(shí),可以查看各設(shè)備和程序的運(yùn)行狀況,查看不同系統(tǒng)之間的數(shù)據(jù)傳輸內(nèi)容、檢查傳輸日志,以便定位故障點(diǎn)、分析原因,從而快速方便地排除故障、解決問(wèn)題,把故障影響降到最低。
駝峰自動(dòng)化系統(tǒng)版本、廠家不同,造成了數(shù)據(jù)傳輸內(nèi)容和格式的差異:(1)有些車站要求調(diào)車通知單的計(jì)劃號(hào)必須是“1位字符+3位數(shù)字”的格式,否則在駝峰自動(dòng)化系統(tǒng)不能正確識(shí)別,接收后續(xù)計(jì)劃時(shí),會(huì)覆蓋已經(jīng)接收的尚未執(zhí)行的計(jì)劃;(2)每鉤甩掛車數(shù)不得超過(guò)64輛,這會(huì)影響編組輛數(shù)超過(guò)該限定值的列車解體計(jì)劃接收(可能會(huì)出現(xiàn)丟鉤、甩掛輛數(shù)不正確等現(xiàn)象),而長(zhǎng)編組列車已經(jīng)廣泛運(yùn)行在干線上;(3)解體列車車次長(zhǎng)度不得超過(guò)5位字符(有的系統(tǒng)則放寬到12位)、車次是否允許包含漢字,左右對(duì)齊方式、車次首尾是否需要空格補(bǔ)位等。
為了應(yīng)對(duì)這些繁瑣、細(xì)微的差別,使用參數(shù)文件來(lái)定制切合車站現(xiàn)場(chǎng)實(shí)際情況的參數(shù)配置。調(diào)車計(jì)劃傳輸程序可以解析參數(shù)設(shè)置,配置軟硬件環(huán)境、握手方式、傳輸內(nèi)容,根據(jù)參數(shù)轉(zhuǎn)換數(shù)據(jù)格式,把調(diào)車計(jì)劃中的特殊備注內(nèi)容(如空車、禁溜、禁峰、大軸、上峰、下峰等)翻譯成駝峰自動(dòng)化系統(tǒng)能夠識(shí)別的特定格式,提供特殊股道(如禁溜線)對(duì)照轉(zhuǎn)換。配置文件要方便靈活、內(nèi)容簡(jiǎn)單明了,使用文本編輯軟件(如記事本)可以編輯修改。
調(diào)車計(jì)劃傳輸程序要適應(yīng)多種接口,使用方便,盡量減少手工操作或者不需要操作,界面顯示直觀;要適合運(yùn)行于Windows XP / 7 / 8等操作系統(tǒng);要方便部署,盡可能不依賴第三方軟件;要方便日常維護(hù),有豐富的傳輸數(shù)據(jù)監(jiān)控顯示、日志記錄功能,出現(xiàn)問(wèn)題或發(fā)生故障時(shí)有據(jù)可查,不需要其它專業(yè)技能和工具軟件。
3.1 傳輸任務(wù)
程序可以定時(shí)讀取傳輸任務(wù),不需要人工干預(yù),主要有兩種模式實(shí)現(xiàn):(1)讀取指定目錄下的文件,如果文件的生成時(shí)間在1 h之內(nèi),視為待傳輸計(jì)劃,傳輸完成后,留存到備份目錄;否則視為過(guò)期文件,直接把文件拋棄到過(guò)期文件目錄中。《鐵路車站綜合管理信息系統(tǒng)》提供調(diào)車計(jì)劃的PCS傳輸功能,計(jì)劃為純文本文件方式,F(xiàn)TP傳輸?shù)今劮迩爸脵C(jī)中。駝峰前置機(jī)安裝程序,把計(jì)劃傳輸?shù)今劮遄詣?dòng)化系統(tǒng)中。(2)定時(shí)查詢數(shù)據(jù)庫(kù)中是否有計(jì)劃傳輸請(qǐng)求,以1 h為限,早于1 h的記錄視為無(wú)效,直接丟棄。
用戶手工查詢指定崗位(或全站)的調(diào)車計(jì)劃,程序根據(jù)計(jì)劃是否已經(jīng)執(zhí)行,以不同顏色區(qū)分顯示,然后手工選擇調(diào)車計(jì)劃,向駝峰自動(dòng)化系統(tǒng)中傳輸,如圖1所示。

圖1 調(diào)車計(jì)劃顯示界面
3.2 調(diào)車計(jì)劃載入
程序有兩種方式載入調(diào)車計(jì)劃內(nèi)容:(1)在指定目錄下發(fā)現(xiàn)純文本文件后,直接讀取文件內(nèi)容,根據(jù)參數(shù)文件中定義的關(guān)鍵字來(lái)識(shí)別車次、計(jì)劃號(hào)、作業(yè)項(xiàng)目,按數(shù)據(jù)項(xiàng)的起止位置,解析調(diào)車計(jì)劃的內(nèi)容。《鐵路車站綜合管理信息系統(tǒng)》提供調(diào)車計(jì)劃傳輸功能,可以把計(jì)劃形成純文本文件,傳輸?shù)今劮迩爸脵C(jī);《集中模式車站系統(tǒng)》可以把計(jì)劃落地成本地文件。由于不同車站系統(tǒng)生成文件的編碼格式不同,解析文件時(shí)需要自動(dòng)判定文件編碼格式是ANSI、Unicode或UTF-8字符集。(2)根據(jù)文件名解析出計(jì)劃號(hào),或者從數(shù)據(jù)庫(kù)中獲取計(jì)劃ID值,然后從數(shù)據(jù)庫(kù)中讀取計(jì)劃。
為了方便程序安裝,推薦數(shù)據(jù)庫(kù)連接訪問(wèn)方式為:(1)ADO訪問(wèn)數(shù)據(jù)庫(kù)。使用《鐵路車站綜合管理信息系統(tǒng)》的車站,一般都在微機(jī)上安裝Oracle客戶端。(2)ODAC訪問(wèn)數(shù)據(jù)庫(kù)。《集中模式車站系統(tǒng)》直接使用IE瀏覽器操作,客戶端只需要安裝fash插件。
3.3 數(shù)據(jù)格式轉(zhuǎn)換
為適應(yīng)不同版本的駝峰自動(dòng)化接口模式,分別建立TW-2、DCD、FTK轉(zhuǎn)換類,生成握手請(qǐng)求、識(shí)別應(yīng)答內(nèi)容,實(shí)現(xiàn)轉(zhuǎn)換數(shù)據(jù)格式等功能。數(shù)據(jù)格式轉(zhuǎn)換類如圖2所示。

圖2 數(shù)據(jù)格式轉(zhuǎn)換類
為了方便現(xiàn)場(chǎng)實(shí)施,數(shù)據(jù)的傳輸模式、轉(zhuǎn)換規(guī)則都寫在參數(shù)文件中,可以隨時(shí)修改。在參數(shù)文件中,與格式轉(zhuǎn)換相關(guān)的內(nèi)容主要如下。
3.3.1 格式設(shè)置
傳輸格式 = TW-2 ;【TW-2】、TW、DCD、FTK
續(xù)行符 = 0D,0A ;16 進(jìn)制數(shù),缺省為【0D,0A】
調(diào)車場(chǎng)股道起止 = SB1,SB99
編組場(chǎng) =
掛車= +,#
甩車 = -,~
車次允許漢字 = y
標(biāo)車號(hào)輛數(shù) = 5 ;摘掛輛數(shù)達(dá)到該值時(shí),顯示開口車號(hào)
備注忽略 = 空線,空重,重空
目錄 =計(jì)劃:{JHH#4}號(hào)
目錄 =解體車次:{CC#12#右}
目錄 =---------
#正文說(shuō)明 {#字段名#長(zhǎng)度#左、中、右對(duì)齊#字段超長(zhǎng)舍棄前部或后部#}
正文 ={#SWH#2#右} {#GDM#4#右#前}{#ZG BZ#1}{#CS#2#右}{#KZBZ#1#左} {#JSL#12#左} {#CH#7#左}
目錄 =*********
目錄 =區(qū)長(zhǎng):{#QZ#0#左} 調(diào)車長(zhǎng):{#DCZ#0#左}
目錄 =編制時(shí)間:{#BZSJ#0#左}
3.3.2 股道轉(zhuǎn)換
# 股道轉(zhuǎn)換(禁溜線、迂回線等)= 原股道碼 @轉(zhuǎn)換后股道碼 @ 特定連掛方式
禁溜線 = SB77 @ J01
禁溜線 = SB88 @ J02
3.3.3 備注轉(zhuǎn)換
# 備注轉(zhuǎn)換 = 內(nèi)容 @ 需要轉(zhuǎn)換為新股道 @ 連掛方式 @ 特定標(biāo)識(shí) @ 場(chǎng)別
# 限速 = ⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,限速,竄,X @ @ @ @ X
限速 = ⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,限速,竄,X @ @ @ !
禁峰 = 迂,U,YH,禁峰,JF @ @ # @ @ YH
禁溜 = 禁,$,∏,JL,送,大軸,△ @ @ #
上峰 = 上峰 @ @ S
下峰 = 下峰 @ @ X
空車 = 空 @ @ @ K
手動(dòng) = 手 @ @ D
3.3.4 備注轉(zhuǎn)換FTK
禁峰 = 迂,U,YH,禁峰,JF @ @ @ A
禁溜 = 禁,$,∏,JL,送,大軸,(O)△ @ @ @ B空車 = P,C,N,G,空 @ @ @ G
程序讀取參數(shù)文件時(shí),根據(jù)駝峰自動(dòng)化接口模式,實(shí)例化對(duì)應(yīng)的類,解析數(shù)據(jù)轉(zhuǎn)換規(guī)則。轉(zhuǎn)換每鉤計(jì)劃內(nèi)容時(shí),先判斷甩掛車股道,是否屬于本場(chǎng)編組股道、禁溜線、迂回線,如果是,過(guò)濾“備注忽略”中定義的敏感字詞,避免轉(zhuǎn)換記事欄內(nèi)容,與轉(zhuǎn)換關(guān)鍵字沖突,造成誤判;根據(jù)規(guī)則轉(zhuǎn)換數(shù)據(jù)內(nèi)容。每項(xiàng)調(diào)車鉤轉(zhuǎn)換完成后,再根據(jù)目錄、正文格式設(shè)置,以及換行符定義,重新編碼數(shù)據(jù)、計(jì)算校驗(yàn)碼,形成傳輸文本內(nèi)容。
3.4 傳輸數(shù)據(jù)顯示
(1)調(diào)車計(jì)劃顯示。如圖3所示,程序解析/讀取待傳輸計(jì)劃后,會(huì)在“內(nèi)容顯示”頁(yè)面右邊顯示計(jì)劃內(nèi)容,便于作業(yè)人員核對(duì)計(jì)劃。手工查詢時(shí),會(huì)在左邊刷新顯示計(jì)劃列表。

圖3 調(diào)試信息頁(yè)面
(2)調(diào)試信息顯示。傳輸計(jì)劃時(shí),會(huì)在“調(diào)試信息”標(biāo)簽頁(yè)中顯示傳輸?shù)膬?nèi)容。左邊顯示發(fā)送請(qǐng)求、應(yīng)答消息;右邊顯示格式轉(zhuǎn)換后的計(jì)劃內(nèi)容,以純文本、16進(jìn)制兩種方式顯示。這樣可以方便程序調(diào)試,發(fā)生故障時(shí),現(xiàn)場(chǎng)操作員可以簡(jiǎn)要描述程序顯示的內(nèi)容,有利于分析故障原因。
3.5 設(shè)定串口參數(shù)
串口數(shù)據(jù)傳輸受通訊線路質(zhì)量的影響比較大,一般波特率采取9 600 bps,如果線路質(zhì)量不良,需要適當(dāng)降速。如果是電纜傳輸,要考慮是否會(huì)受到冬季、雨季的影響;還要采取防雷措施、安裝串口卡,避免微機(jī)主板雷擊損壞。要有良好的接地線措施,減少傳輸過(guò)程中的誤碼。參數(shù)文件中與串口設(shè)置相關(guān)的內(nèi)容主要有:
[傳輸設(shè)置]
端口 = COM2
波特率 = 9600
奇偶校驗(yàn) = 0 ;【0無(wú)校驗(yàn)】、1奇校驗(yàn),2偶校驗(yàn)
數(shù)據(jù)位 = 8 ;4 - 【8】
停止位= 0 ;【0】,1,2分別對(duì)應(yīng) 1,1.5,2停止位
流控制 = 0 ;【0】無(wú)
超時(shí) = 500 ;毫秒數(shù)
4.1 使用工具軟件
常用的調(diào)試工具有:
(1)串口調(diào)試助手,支持300~115 200 bps波特率,以ASCII或16進(jìn)制碼方式發(fā)送文本或接收顯示。在開發(fā)調(diào)試過(guò)程中,有兩個(gè)缺點(diǎn):a.只能使用串口COM1~COM4,如果使用串口卡,串口個(gè)數(shù)可能會(huì)受限,需要手工修改串口名;b.顯示串口接收數(shù)據(jù)時(shí),漢字在純文本方式顯示接收內(nèi)容時(shí)會(huì)有問(wèn)題,16進(jìn)制顯示則沒有問(wèn)題。
(2)虛擬串口軟件,如VSOD,可以成對(duì)增加虛擬串口,這兩個(gè)串口可以連接起來(lái),實(shí)現(xiàn)通訊,彌補(bǔ)微機(jī)、筆記本串口數(shù)量少(或者沒有串口)的問(wèn)題。
4.2 同步編制模擬調(diào)試程序
預(yù)先編制模擬調(diào)試程序,模擬駝峰自動(dòng)化系統(tǒng)數(shù)據(jù)接收過(guò)程。通過(guò)“程序樁”來(lái)顯示串口傳輸?shù)恼?qǐng)求應(yīng)答、業(yè)務(wù)數(shù)據(jù)、校驗(yàn)反饋等數(shù)據(jù)傳輸各階段的數(shù)據(jù)內(nèi)容,同時(shí)以16進(jìn)制、純文本方式顯示,實(shí)現(xiàn)“透明”傳輸,方便數(shù)據(jù)核對(duì)、利于程序調(diào)試與故障排除。純文本雖然可以方便查看,但是一些非可視字符無(wú)法正常顯示,而以16進(jìn)制顯示方式不存在問(wèn)題。
調(diào)車計(jì)劃傳輸代理程序已經(jīng)在沈陽(yáng)鐵路局管內(nèi)十幾個(gè)編組站、區(qū)段站投入使用,實(shí)現(xiàn)了調(diào)車作業(yè)通知單向駝峰自動(dòng)化系統(tǒng)傳輸,取代了駝峰作業(yè)人員的手工輸入,保證了計(jì)劃數(shù)據(jù)傳輸?shù)恼_性、及時(shí)性,避免了二次輸入帶來(lái)的誤差,保證了駝峰作業(yè)的安全,有效減輕了駝峰操作人員的勞動(dòng)強(qiáng)度。
[1]杜志遠(yuǎn),趙鳳錦,丁 昆,等.駝峰自動(dòng)集中微機(jī)儲(chǔ)存與控制系統(tǒng)[J].鐵道學(xué)報(bào),1990(3):86-91.
[2]鐘衛(wèi)紅.編組站綜合自動(dòng)化駝峰控制系統(tǒng)的研究[J].鐵路通信信號(hào)工程技術(shù),2008(3):15-18.
責(zé)任編輯 陳 蓉
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
劉 雁,高級(jí)工程師;裴世廉,高級(jí)工程師。