王文芳
(蘭州交通大學(xué)光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,碩士研究生,甘肅 蘭州 730070)
我國(guó)鐵路信號(hào)領(lǐng)域,不同的系統(tǒng)之間大部分采用繼電器接口方式。繼電器接口在技術(shù)上比較成熟且容易實(shí)現(xiàn),但在繼電接口的系統(tǒng)之間存在著交換信息種類和信息量有限、電氣電路復(fù)雜、配線繁多需要投入大量的電纜和工程造價(jià)高等問(wèn)題。隨著列車速度的提高,在CTCS2級(jí)及以上列控系統(tǒng)中增加了列控中心等新的系統(tǒng)和新的技術(shù),繼電接口已經(jīng)不適應(yīng)列控中心與調(diào)度集中、計(jì)算機(jī)聯(lián)鎖及微機(jī)監(jiān)測(cè)等系統(tǒng)之間信息的交互。為了克服繼電接口的缺點(diǎn),滿足系統(tǒng)間大信息量傳輸,減少投資,采用數(shù)字接口。數(shù)字接口技術(shù)在通信接口技術(shù)領(lǐng)域有更廣泛的應(yīng)用前景,它的使用對(duì)列控系統(tǒng)的開(kāi)發(fā)和應(yīng)用具有重要的意義[1]。
TCC(列控中心)和CBI(計(jì)算機(jī)聯(lián)鎖)系統(tǒng)是CTCS的重要信號(hào)設(shè)備。車站計(jì)算機(jī)聯(lián)鎖系統(tǒng)主要是實(shí)現(xiàn)道岔、軌道、信號(hào)機(jī)之間的聯(lián)鎖控制,把接發(fā)車進(jìn)路的辦理情況告訴地面列控中心,列控中心接收到信息并進(jìn)行處理從而控制車站和區(qū)間軌道電路,并通過(guò)軌旁電子單元控制有源應(yīng)答器,實(shí)現(xiàn)地面信息向列車動(dòng)態(tài)傳輸。本文研究的主要內(nèi)容是TCC與CBI間的通信。設(shè)備和通信信道技術(shù)要求及通信指標(biāo)要求如下[2]:
1)TCC與CBI間應(yīng)能實(shí)現(xiàn)信息傳輸?shù)陌踩浴CC或CBI對(duì)接收的數(shù)據(jù)進(jìn)行CRC安全校驗(yàn),TCC應(yīng)能夠與不同型號(hào)的計(jì)算機(jī)聯(lián)鎖系統(tǒng)通用兼容,采用標(biāo)準(zhǔn)統(tǒng)一的通信接口協(xié)議,TCC與CBI間應(yīng)采用RSSP-1(Railway Signal Safety Protocol)安全協(xié)議。
2)設(shè)備與傳輸通道故障時(shí)應(yīng)不影響信息正常傳輸。為保證列車控制的安全性和設(shè)備的冗余性,設(shè)備與通信網(wǎng)絡(luò)均按雙套冗余配置,分為主機(jī)和備機(jī)。主機(jī)應(yīng)能向外部設(shè)備的主、備機(jī)發(fā)送數(shù)據(jù),備機(jī)不發(fā)送。主備機(jī)切換時(shí),應(yīng)能保證切換后發(fā)送數(shù)據(jù)的連續(xù)性。
3)系統(tǒng)設(shè)計(jì)要符合“故障-安全”原則,應(yīng)具備診斷與維護(hù)功能,并能實(shí)時(shí)向集中監(jiān)測(cè)系統(tǒng)提供監(jiān)測(cè)狀態(tài)信息。設(shè)備或通道故障時(shí)能夠向集中監(jiān)測(cè)系統(tǒng)提供故障報(bào)警信息。
4)列控中心的IP地址和端口號(hào)應(yīng)參照列控系統(tǒng)相關(guān)編號(hào)規(guī)則進(jìn)行配置。
5)TCC與CBI間應(yīng)能實(shí)現(xiàn)信息傳輸?shù)膶?shí)時(shí)性,以300 ms為周期交互數(shù)據(jù)。
6)TCC與CBI通信數(shù)據(jù)的應(yīng)用層信息包的總長(zhǎng)固定為40個(gè)字節(jié),其中幀頭信息占用3個(gè)字節(jié)、信息類型l個(gè)字節(jié),為數(shù)據(jù)內(nèi)容余留33個(gè)字節(jié),其中包括預(yù)留字節(jié),當(dāng)車站規(guī)模較大或者系統(tǒng)升級(jí)傳輸數(shù)據(jù)內(nèi)容增加,由預(yù)留字節(jié)填充。
列控中心與計(jì)算機(jī)聯(lián)鎖之間采用標(biāo)準(zhǔn)以太網(wǎng)連接。兩者之間的數(shù)據(jù)傳輸采用TCP方式,如圖1所示。
圖1 TCC和CBI網(wǎng)絡(luò)連接示意圖
TCC與CBI的物理接口采用標(biāo)準(zhǔn)RJ45接口,形成交叉互連的冗余雙通道,通過(guò)安全信息網(wǎng)傳遞安全信息。RJ45型網(wǎng)線插頭又稱水晶頭,廣泛應(yīng)用于局域網(wǎng)和以太網(wǎng)的網(wǎng)絡(luò)設(shè)備間網(wǎng)線的連接。RJ45型插頭和網(wǎng)線有2種連接方法,分別稱作T568A線序和T568B線序。列控中心和計(jì)算機(jī)聯(lián)鎖系統(tǒng)分別與交換機(jī)相連,應(yīng)采用直連線互連,即網(wǎng)線的兩端均用T568B線序。T568B線序是指RJ45型插頭的8個(gè)引腳插入的網(wǎng)線按“橙白、橙、綠白、藍(lán)、藍(lán)白、綠、棕白、棕”順序排列。對(duì)于10/100Base-T以太網(wǎng)RJ-45各腳功能如下:
1—TX+ 傳輸數(shù)據(jù)正極(發(fā)信號(hào)+);
2—TX- 傳輸數(shù)據(jù)負(fù)極(發(fā)信號(hào)-);
3—RX+ 接收數(shù)據(jù)正極(收信號(hào)+);
4—n/c 未使用(空腳);
5—n/c 未使用(空腳);
6—RX- 接受數(shù)據(jù)負(fù)極(收信號(hào)-);
7—n/c 未使用(空腳);
8—n/c 未使用(空腳)。
RJ45接口采用差分傳輸方式,tx+、tx-是一對(duì)雙絞線,擰在一起可以減少干擾。
3.1 計(jì)算機(jī)聯(lián)鎖發(fā)給列控中心的信息 列控中心接收聯(lián)鎖設(shè)備的信息包括接發(fā)車進(jìn)路信息、進(jìn)站信號(hào)機(jī)燈絲斷絲信息、發(fā)車請(qǐng)求信息、發(fā)車鎖閉狀態(tài)信息、發(fā)車輔助辦理請(qǐng)求信息、接車輔助辦理請(qǐng)求信息。計(jì)算機(jī)聯(lián)鎖系統(tǒng)以進(jìn)路號(hào)的形式向列控中心傳送接發(fā)車進(jìn)路信息。根據(jù)不同的車站,進(jìn)路信息號(hào)分為接車進(jìn)路、通過(guò)進(jìn)路和發(fā)車進(jìn)路信息號(hào)。
對(duì)于接車進(jìn)路,進(jìn)路信息號(hào)發(fā)送時(shí)機(jī)為進(jìn)站信號(hào)機(jī)開(kāi)放,當(dāng)進(jìn)站信號(hào)機(jī)內(nèi)方首區(qū)段解鎖則停止發(fā)送。
由列控中心判別計(jì)算機(jī)聯(lián)鎖系統(tǒng)是否建立了通過(guò)進(jìn)路,若進(jìn)路建立,計(jì)算機(jī)聯(lián)鎖系統(tǒng)向列控中心同時(shí)發(fā)送接車進(jìn)路信息號(hào)和相應(yīng)的發(fā)車進(jìn)路信息號(hào)。
對(duì)于發(fā)車進(jìn)路,進(jìn)路鎖閉開(kāi)始發(fā)送進(jìn)路信息號(hào),進(jìn)路末區(qū)段解鎖則停止發(fā)送。特別是對(duì)于正線股道的直股發(fā)車進(jìn)路,發(fā)送時(shí)機(jī)為該股道發(fā)車信號(hào)機(jī)的開(kāi)放,該信號(hào)機(jī)關(guān)閉時(shí),立即停止發(fā)送進(jìn)路信息號(hào)[3]。
3.2 計(jì)算機(jī)聯(lián)鎖接收列控中心的信息 列控中心向聯(lián)鎖設(shè)備提供如下信息:進(jìn)站信號(hào)機(jī)降級(jí)顯示命令、區(qū)間閉塞及方向信息、區(qū)間軌道電路狀態(tài)信息、區(qū)間燈絲斷絲信息。進(jìn)站信號(hào)機(jī)降級(jí)顯示命令發(fā)送和停止時(shí)機(jī)為:當(dāng)正線發(fā)車區(qū)段或車站離去區(qū)間有限速或者當(dāng)應(yīng)答器與限速起點(diǎn)的距離小于限速目標(biāo)距離,列控中心系統(tǒng)向計(jì)算機(jī)聯(lián)鎖發(fā)送相應(yīng)進(jìn)站信號(hào)降級(jí)顯示命令信息。計(jì)算機(jī)聯(lián)鎖系統(tǒng)收到降級(jí)顯示命令后,需要控制該信號(hào)機(jī)降級(jí)顯示黃燈,直到相應(yīng)的臨時(shí)限速區(qū)取消后,停止發(fā)送該命令。[3]
列控中心和計(jì)算機(jī)聯(lián)鎖分別用1臺(tái)計(jì)算機(jī)模擬,2臺(tái)計(jì)算機(jī)通過(guò)以太網(wǎng)進(jìn)行通信,對(duì)于每一臺(tái)計(jì)算機(jī)來(lái)說(shuō)都要知道它的通信對(duì)象、通信信息和通信規(guī)則(即協(xié)議),在網(wǎng)絡(luò)上通過(guò)IP地址來(lái)標(biāo)識(shí)1臺(tái)計(jì)算機(jī),結(jié)合端口號(hào)就可以唯一的確定1臺(tái)主機(jī)。主機(jī)A和主機(jī)B是網(wǎng)絡(luò)中的2個(gè)終端,只要主機(jī)A知道主機(jī)B的IP地址和端口號(hào),就可以向主機(jī)B發(fā)送通信請(qǐng)求,主機(jī)B接受請(qǐng)求并按照通信協(xié)議的規(guī)定就可以和主機(jī)A進(jìn)行交互。
這里使用基于TCP(面向連接)的Socket套接字進(jìn)行編程。在TCP/IP網(wǎng)絡(luò)應(yīng)用中,通信的2個(gè)進(jìn)程間相互作用的主要模式是客戶機(jī)/服務(wù)器模式,即客戶端向服務(wù)器主動(dòng)提出請(qǐng)求,服務(wù)器接收到請(qǐng)求后,提供相應(yīng)的服務(wù)[4]。Windows下Socket編程主要包括服務(wù)器端和客戶端。
4.1 服務(wù)器端程序 服務(wù)器端程序流程,如圖2所示。
圖2 服務(wù)器端程序流程圖
加載套接字庫(kù)主要用到的函數(shù)是int WSAStart?up(MAKEWORD(2,2),&Ws)。其中 MAKEWORD(2,2)用來(lái)獲得要加載的Winsock庫(kù)的版本信息。創(chuàng)建套接字函數(shù) ServerSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)中第1個(gè)參數(shù)指定地址族,第2個(gè)參數(shù)指定Socket類型,第3個(gè)參數(shù)是與特定的地址家族相關(guān)的協(xié)議。當(dāng)socket函數(shù)調(diào)用失敗后返回INVALID_SOCKET。通過(guò)bind(Server?Socket,(struct sockaddr*)&LocalAddr,sizeof(Loca?lAddr))函數(shù)將該套接字綁定到本地地址和端口上。其中,第1個(gè)參數(shù)是要綁定的套接字,第2個(gè)該套接字的本地地址信息,第3個(gè)是該地址結(jié)構(gòu)的長(zhǎng)度。調(diào)用listen(ServerSocket,10)即可實(shí)現(xiàn)將套接字設(shè)為監(jiān)聽(tīng)模式。根據(jù)流程圖,下一步進(jìn)入循環(huán),接受鏈 接 請(qǐng) 求
開(kāi)始接收信息:
cout<<"接收到客戶信息為:"< 4.2 客戶端程序 在列控中心與計(jì)算機(jī)聯(lián)鎖組成的系統(tǒng)中,列控中心為服務(wù)器端,計(jì)算機(jī)聯(lián)鎖為客戶端??蛻舳吮确?wù)器端程序要簡(jiǎn)單,下面以計(jì)算機(jī)聯(lián)鎖系統(tǒng)發(fā)送發(fā)車請(qǐng)求信息為例說(shuō)明客戶端的工作原理。首先,打開(kāi)一個(gè)通信通道并連接到服務(wù)器所在主機(jī)的特定端口,并向服務(wù)器發(fā)送服務(wù)請(qǐng)求con?nect(CientSocket,(struct sockaddr*)&ServerAddr,sizeof(ServerAddr))。通信協(xié)議中定義1010表示發(fā)車請(qǐng)求繼電器(FQJ)吸起,0101表示該繼電器處于落下?tīng)顟B(tài)。若現(xiàn)在處于選路過(guò)程,則FQJ的值為1010;若進(jìn)路信號(hào)開(kāi)放,則FQJ的值為1010。然后由語(yǔ) 句 GetDlgItem(IDC-SENDTEXT)->GetWindow?Text(str)將 FQJ的值賦給 str,用 send(CientSocket,str.GetBuffer(1),sizeof(str),0)函數(shù)將信息發(fā)送到制定的服務(wù)器端。最后,請(qǐng)求結(jié)束后關(guān)閉通信通道并終止??蛻舳送瓿尚畔l(fā)送的功能。 作為客戶端,還應(yīng)該能夠接收并顯示服務(wù)器端所發(fā)送的消息。采用異步套接字模式實(shí)現(xiàn)該功能,可以調(diào)用函數(shù)WSAAsyncSelect()實(shí)現(xiàn)。 我國(guó)在CTCS建設(shè)中成功借鑒ETCS的經(jīng)驗(yàn),采用統(tǒng)一的技術(shù)標(biāo)準(zhǔn),模塊化設(shè)計(jì),實(shí)現(xiàn)通用兼容的功能。本文分析列控中心與計(jì)算機(jī)聯(lián)鎖之間交換的數(shù)據(jù)內(nèi)容并結(jié)合鐵道部的相關(guān)規(guī)定制定出適用于本系統(tǒng)的接口協(xié)議,通過(guò)編程實(shí)現(xiàn)了計(jì)算機(jī)聯(lián)鎖和列控中心的互聯(lián)互通。 [1]肖鵬,高建強(qiáng),李遠(yuǎn)剛.CTCS2列控系統(tǒng)中心接口分析[J].鐵道工程學(xué)報(bào).2007.2 [2]北京全路通信信號(hào)研究設(shè)計(jì)院.客專列控中心與聯(lián)鎖接口規(guī)范(V1.0)[S].北京:北京全路通信信號(hào)研究設(shè)計(jì)院.2009. [3]鐵道部.客運(yùn)專線列控中心技術(shù)規(guī)范V0.6[S]北京:鐵道部.2008.9. [4]胡小軍,鄧波,高宏偉.Visual C++高級(jí)開(kāi)發(fā)范例解析[M].北京:電子工業(yè)出版社.2002.15 結(jié)束語(yǔ)